pyenvとpyenv-virtualenvを使ってみる

昔pyenv使おうとしてうまく行かなくてpyenv恐怖症だったんだけど、
いい加減使えるようになろうと思って入門したのでメモ

みんなpyenvとvirtualenvって当たり前のようにいってて怖くて、
何が違うの?って感じだった。

pyenv

pythonのバージョン切り替える

pyenv-virtualenv

pyenv-virtualenvを使うとpythonの仮想環境を1つのバージョンに対してたくさんつくれる

自分の理解だと、pyenvだけだと2.7.8を使ってるプロジェクトAとプロジェクトBの環境が一緒になってしまう。
pyenv-virtualenvを使うと、2.7.8のプロジェクトA用、プロジェクトB用それぞれの環境が作れる。
(間違ってたらごめんなさい、教えてください。)

インストール

Macだったら

brew install pyenv-virtualenv

これでpyenvとpyenv-virtualenvのプラグインが入る。

.zshrcとか.bash_profileとかにこれを追加

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"


いつもは2.7を使ってるんだけど、3.4を入れてみる

pyenv versions

最初はこれやると、systemしか無いと思う。

pyenv install -l

で入れられる環境を見て、
今回は3系を入れたいので

pyenv install 3.4.1

とする。 そうすると少し時間がかかって3.4.1が入る。
もう一度pyenv versionsをすれば、3.4.1がリストに入っているはず。

f:id:cocodrips:20140902165723p:plain

追記(2015/11/20)
Mac OS X 10.9以降では

ERROR: The Python zlib extension was not compiled. Missing the zlib?

というようなエラーが出ます。こちらを参考にしてみてください。
[kz] pythonインストール覚書 | kazscape



3.4.1の仮想環境を作る

なんかディレクトリを作ってみる

mkdir pyenv_test
cd pyenv_test

lesson3.4.1っていう環境を作ってみる

pyenv virtualenv 3.4.1 lesson3.4.1
pyenv versions

lesson3.4.1ってのが追加されたはず。

そしたらディレクトリの環境を早速lesson3.4.1にしてみる。

pyenv local lesson3.4.1
pyenv rehash

python -Vをすると3.4.1になっているのが確認できるはず。
pip listをすると、pip, setuptoolsしか入っていないのが確認できる。

仮想環境を解除する

仮想環境の運用を終了したいときは、以下のようにする。

pyenv local --unset

pyenv使ってみたけど、なんか最近はいろいろ他にもあるらしい

anyenvで開発環境を整える - Qiita


pyenvオワコン、direnv最強 - None is None is None

追記 (2017/05/05)

ずっとvirtualenvだと思ってたものは、「pyenv-virtualenv」だったらしい・・・。
今更だけど該当箇所を書き換えた。