luggage baggage

Machine learning, data analysis, web technologies and things around me.

pyenv 環境下で Anaconda を使う際、source activate が落ちる現象の対処法

こんにちは。吉田弁二郎です。だいぶ間が空いてしまいました。

小ネタの紹介です。Python 実行環境を管理するために pyenv を使う方も多いのではないかと思います。私は Anaconda のバージョンを複数入れるのに使っています。ところが、

conda create -n new_env python=3.6 numpy scipy pandas

などと書いて独立した開発環境を作った後、

source activate new_env

として環境を変更しようとすると、ターミナルが落ちてしまう現象が起こります。(原因は理解しておらず)

この対処は簡単で、

alias activate_env="source $PYENV_ROOT/versions/$(pyenv version-name)/bin/activate"

として activate を直接叩きにいけば大丈夫です。pyenv version-name は現在選択されている Python バージョンの名称だけ(例えば Anaconda2-4.3.0)を表示するコマンドで、pyenv があればデフォルトで使えます。こうしておくと、pyenv global xxx としてバージョンを切り替えた後も activate のパスを気にしなくてよくなるので気楽ですね。

現象を確認した環境
  • MacOSX 10.11.6
  • GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
  • pyenv 1.0.7-12-g235eea3
  • Anaconda2-4.3.0