pyenvでanacondaと通常pythonを切り替える
以前このブログでも紹介したAnacondaをMacで使うとき、Systemにもとから入ってるpythonやbrewで入れたpython等とライブラリパスなどがぶつかって使いづらいときがあります。
そこでpyenvを入れてみました。ググるとやり方は出てきますが一応ここでも。
# brew install pyenv # cat >> .bashrc HOMEBREW_PATH=/opt/boxen/homebrew export PYENV_ROOT=$HOMEBREW_PATH/opt/pyenv if [ -s $HOMEBREW_PATH/bin/pyenv ] ; then eval "$(pyenv init -)" pyenv global 2.7.6 pyenv version | sed -e 's/ .*//' fi # source .bashrc (初回は2.7.6がまだ入ってないのでエラーが出る) # pyenv install 2.7.6 # source .bashrc (これでOK)
上のシェル変数HOMEBREWはhomebrewのインストールパスに合わせて書き換えます。(上記はboxenでhomebrewを入れている場合です)。pyenvはデフォルトだとユーザごとに色々インストールしますがシステム共通でインストールする場合は上記のようにPYENV_ROOTを指定してやると便利かもです。
anacondaのMAC版はpkgファイルもありますが、pyenvで切り替えるときはシェルバージョンのインストーラを使います。ここからAnaconda-x.x.x-MacOSX-x86_64.shみたいな名前のファイルをDLして以下のコマンドでインストールします。
# bash ~/Downloads/Anaconda-x.x.x-MacOSX-x86_64.sh (ライセンスなど聞かれるので[yes]で進んで、 インストールパスを指定するところで $PYENV_ROOT/versions/anaconda なパスを指定 (上の例だと /opt/boxen/homebrew/opt/pyenv/versions/anaconda になる ) ※ あと最後に .bash_profileにパス指定するかを聞かれるので no にすること。 yesにするとpyenvで切り替えてもanacondaを常に見に行ってしまうので注意。)
これで通常のpythonとanacondaを切り替えられます。
# pyenv global 2.7.6; python --version Python 2.7.6 # pyenv global anaconda; python --version Python 2.7.6 :: Anaconda 1.9.1 (x86_64)
便利ですね。切り替えておけばパッケージの追加はpipで普通にインストールすれば指定バージョンのほうに入ります。Good.
ちなみに僕はscipyやnumpyやscikitlearn, theanoやgensimのようなデータ分析系パッケージはanacondaの方に入れて、クローラのscrapyとかは2.7.6のほうに入れて使い分けるようにしました。(anacondaの方にscrapyのインストールが出来なかったのでそのようにした)