21cm power spectrumのthermal noiseを計算してくれる21cmSenseを動かしたいと思ったが、python2系でしか動かないとのことなので、本来入っていたpython3系を消すこと無く共存させる方法を模索。以下にその方法を記す。
やることは以下の3つ。
①homebrewをインストール
②pyenvをインストール
③pyenvでanacondaをインストール
まず、以下のコマンドでhomebrewをインストール
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
次にpython2とpython3を共存させるのに必要なpyenvをhomebrewの以下のコマンドでインストール。
brew install pyenv
pyenvをインストールしただけでは、バージョン間の切り替えができないので、以下の環境変数を.bash_profileに書き込む。
export PATH="$PYENV_ROOT/bin:$PATH"
export PYENV_ROOT="$HOME/.pyenv"
eval "$(pyenv init -)"
追加したらターミナルを再起動して
pyenv -v
と入力すると、インストールがうまくいっていればバージョンが表示される。
次にpyenv経由でanacondaをインストールする。元々、pipでanacondaを入れていたが、pyenvでバージョン間のスイッチを行うためにはpyenvでanacondaをインストールし直すのが良い。
pyenv install -l | grep anaconda
でインストールできるanacondaのバージョンを確認することができるので、例えば、
pyenv install anaconda3-x.x.x
pyenv install anaconda2-x.x.x
でpython3系、python2系のインストールができる。インストールしたバージョンを確認するときは
pyenv versions
で行える。バージョン間のスイッチは以下のコマンドで可能。
pyenv local anacanda3-x.x.x (or pyenv global anaconda3-x.x.x)
pyenv local anacanda2-x.x.x (or pyenv global anaconda2-x.x.x)
localとglobalの違いは、localだとカレントディレクトリ以下でしかバージョンのスイッチができないことと、globalだと全体でバージョンのスイッチができるということ。
(2018/03/09 追記)
21cmSenseはanaconda,incだと起動しない。そのため、~/anacondaをデフォルト設定にして、python 3系を使う時にpyenvで切り替えるということにした。