macでpyenvの環境を整えたい
しばらく前にmacを新調したけど、開発環境を全然構築してなかったので、重い腰を上げてやってみる。
これまでは、pythonの開発環境を切り替えるのにvirtualenvを使ってきた。
Pythonの仮想環境 virtualenvとvirtualenvwrapper - [[ともっくす alloc] init]
でも、いろいろ調べてたら、pyenvの方が良いっぽい。
事前準備
pyenvのインストール
Homebrewでpyenvをインストール
$ brew install pyenv
それが成功したら、以下を.zshrc(.bashrc)に追記。
export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then export PATH=${PYENV_ROOT}/bin:$PATH eval "$(pyenv init -)" fi
pyenv-virtualenvのインストール
Homebrewでpyenv-virtualenvをインストール
pyenv-virtualenvはpyenvのプラグインで、pyenv内でvirtualenvが使えるような感じ。
$ brew install pyenv-virtualenv
各バージョンのpythonを準備
インストールできるpython
インストール可能なpythonのバージョン等の確認は以下の通り。
$ pyenv install -l
python2系や3系、jython、pypyなどたくさんあるのが分かる。
環境を構築
デフォルトの環境を構築する
特に指定しない場合に使う環境を構築する。
環境名はdefaultで、pythonのバージョンは2.7.8にしてみる。
$ pyenv virtualenv --distribute 2.7.8 default
確認してみる。
$ pyenv versions * system (set by /Users/xxx/.pyenv/version) 2.7.8 default $ python -V Python 2.7.5
ちゃんと、defaultという環境ができている。
バージョンは2.7.5になっている。
これを、デフォルトの環境にする。
pyenv global default
確認してみる。
$ pyenv versions system 2.7.8 * default (set by /Users/xxx/.pyenv/version) $ python -V Python 2.7.8
ちゃんと、バージョンが2.7.8になっている。
ディレクトリ毎に環境を変える
pyenv-virtualenvなら、ディレクトリ毎に環境を自動で切り替えることができる。
virtualenvwrapperとか使って、workonとか毎回する必要はない。
flaskを使ったプロジェクトのために、env-flaskという環境を使ってみる。
$ mkdir FlaskProject $ cd FlaskProject $ pyenv versions system 2.7.8 * default (set by /Users/xxx/.pyenv/version) $ pyenv virtualenv --distribute 2.7.8 env-flask $ pyenv local env-flask $ pyenv versions system 2.7.8 default * env-flask (set by /Users/xxx/FlaskProject/.python-version) $ pip install flask
これで、FlaskProjectというディレクトリ内では、env-flaskという環境が使われ、それ以外ではデフォルトの環境が使われる。
これは、ワーキングディレクトリを移動することで、自動で切り替わる。便利!
もちろん、pipでflaskをインストールしているが、これは、env-flaskにだけインストールされており、defaultにはインストールされていない。便利!