Marvericksをクリーンインストールしたついでに、python環境を刷新してみた。
従来はvirtualenv+virtualenvwrapperくらいで間に合ってたくらい。
ディレクトリ単位でpython環境切り替え可能っていうからきっと便利。
そして既に先輩たちにより、いくつか同じ情報書かれてたけど、自分用ってことで割り切り。
環境
- OSX 10.9.1
- Homebrew
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で横にフレキシブル!
きっと便利!