Anacondaを用いたPython 2.x系と3.x系の使い分け

先日、Python 3.x系のAnacondaをLinuxにインストールする必要がありました。
これ自体はなんら問題がなかったのですが、FreeSurferを使っている時にひとつ問題が出ました。

FreeSurferの asegstats2table と aparcstats2table はPython 2.x系で書かれているスクリプトで、Python3系では動きません。

Ubuntuの場合、デフォルトだと

python or python2 –> Python 2.x系
python3 –> Python 3.x系

となっているため、

#!/usr/bin/env python

は、通常はpython2.x系を指します。

しかし、私のように、Python3.x系のAnacondaをいれると

$ python --version

とすると

Python 3.6.5 :: Anaconda, Inc.

となり、python3.x系が呼び出されているのがわかります。

どうしたものかと思いましたが、Anacondaのサイトにきちんと答えが書いてありました。

conda create -n py27 python=2.7 anaconda

ここで py27 は任意の文字列でいいのですが、新たな環境名になります。python 2.7をいれたいので、py27というのはわかりやすくていいですね。

そして、その後、python 2.7を有効にするには以下のようにタイプします。

source activate py27

するとコマンドプロンプトに

(py27) brain@L4N:~$ 

のように (py27) とつきます。これで、今、python 2.7系が動いていると一目瞭然でわかります。

実際、バージョンを確認してみます。

$ python --version
Python 2.7.15 :: Anaconda, Inc.

確かに Python2.x系となっています。

Python 3.x系に戻すにはdeactivateをします。

source deactivate

これで戻ります。

なお、ターミナルを2つ立ち上げてひとつはpython 2.x, もうひとつは python 3.x とできるかどうか試したところ、問題なくできました。

なので、FreeSurfer関連の作業をしたい時には、ターミナルをひとつ立ち上げ、Python 2.x系にし、その他、Python3が必要なものは、デフォルトのままPython3で作業をしてという感じでいけばうまく両立できそうです。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください