先日、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で作業をしてという感じでいけばうまく両立できそうです。