pyenv virtualenvのメモ


pyenv

virtualenv

pyenv virtualenv
の使い方がちょっとわかってきた。

pyenv:pythonのバージョンを変える。localでそのディレクトリ以下に入ったときに指定したpythonのバージョンに変更される。
virtualenv:pipなどの開発環境。
pyenv virtualenv:pyenvの環境にvirtualenvの環境を追加できる。

pyenv virtualenvをインストールしたら、環境を作る
$ pyenv virtualenv 3.4.3 djang-python3
$ pyenv versions
* system (set by /Users/sogakazuhiro/Dropbox/04_dev/.python-version)
3.4.3
djang-python3
このように、pyenvに今作った環境が追加される。
$ mkdir pyenvtest # 適当なディレクトリを作って
$ cd pyenvtest # ディレクトリに移動
$ pyenv local djang-python3 # localで設定。このディレクトリに入るとdjang-python3になるという設定。
(djang-python3) $ python -V
Python 3.4.3
(djang-python3) $ pip list
You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
pip (6.0.8)
setuptools (12.0.5)

一つ上のディレクトリに移動すると環境から抜ける。
$ cd ..
pyenv-virtualenv: deactivate djang-python3
$ python -V
Python 2.7.10
$ pip list
Django (1.8.4)
pip (7.1.2)
setuptools (17.1.1)
virtualenv (13.1.2)
$ cd pyenvtest
pyenv-virtualenv: activate djang-python3

という感じで自動的に環境が切り替わる。

これは結構メリットがあって、まずsource ~~といったコマンドを打たなくて良いのと、いちいち違う環境に移動するときにdeactivateやsource ~~をしなくて良い。

複数の環境を使ってテストしたり、アプリを複数作ったりしているときにはすごく便利だなあと。

あと、今回はMacで環境を作っていて、.bash_profileの設定はこんな感じ。

export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi

参考:Python – 食わず嫌いしてたpyenvを使ってみたら便利過ぎて腰を抜かした話 – Qiita