Macでpyenv+virtualenv

  • 225
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Marvericksをクリーンインストールしたついでに、python環境を刷新してみた。
従来はvirtualenv+virtualenvwrapperくらいで間に合ってたくらい。
ディレクトリ単位でpython環境切り替え可能っていうからきっと便利。

そして既に先輩たちにより、いくつか同じ情報書かれてたけど、自分用ってことで割り切り。

環境

pyenv

インストール

pyenvだけ

$ brew install pyenv

なんとこれで終わり。

pyenvにプラグインとしてvirtualenvも使うなら

$ brew install pyenv-virtualenv

最初からこれするだけで、pyenvも一緒に入ってくれる。

設定

インストール時に注意点として下記を促してくれるので適宜。

To enable shims and autocompletion add to your profile:
  if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi

To use Homebrew's directories rather than ~/.pyenv add to your profile:
  export PYENV_ROOT=/usr/local/opt/pyenv

使い方

環境をつくる

$ pyenv install 2.7.6

指定バージョンのpythonがインストールされる。
もちろんpipも共に。

なお、インストール可能なバージョンの一覧を確認するには

$ pyenv install -l

インストール済みの環境一覧を確認するなら

$ pyenv versions

global: 環境を共通利用

これは個人的にはしてもしなくても、な気がする。しなかったらsystem側のpythonを見に行くだけ。

$ python --version;which python
Python 2.7.5
/usr/bin/python

$ pyenv global 2.7.6
$ exec $SHELL -l

$ python --version;which python
Python 2.7.6
/usr/local/opt/pyenv/shims/python

local: 任意ディレクトリで任意環境を適用する

バージョン3.3.3環境を導入。

$ pyenv install 3.3.3

任意ディレクトリに移動して環境指定する。

$ cd ~/Projects/sandbox/
$ pyenv local 3.3.3
$ pyenv version
3.3.3 (set by /Users/xxx/Projects/sandbox/.python-version)

指定ディレクトリ以外はglobalのほうをみてることを確認。

$ cd
$ pyenv version
2.7.6 (set by /usr/local/opt/pyenv/version)

virtualenv

pyenv install時に指定したバージョンごとの環境を元に、新たに環境を複製しくれるのがvirtualenv。
同じバージョンで違うパッケージ構成にしたい時とか便利。

$ pyenv virtualenv 2.7.6 sandbox276

ここでつくられた環境もpyenv versionsにのってくる。
pyenv local sandbox276とかすれば任意ディレクトリでの環境利用も同じく使える。

環境の削除

バージョンごと環境もvirtualenv環境一緒。

$ pyenv uninstall 3.3.3
$ pyenv uninstall sandbox276
$ pyenv versions
  system
* 2.7.6 (set by /usr/local/opt/pyenv/version)

ただしlocal指定で、任意ディレクトリに環境つくった場合、.python-versionというファイルが出来上がってそこに環境名が書かれているけど、それは消えないのでご注意を。

感想

バージョンで縦にフレキシブル!
virtualenvで横にフレキシブル!
きっと便利!

参考