LoginSignup
228
225

More than 5 years have passed since last update.

Macでpyenv+virtualenv

Last updated at Posted at 2014-01-24

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で横にフレキシブル!
きっと便利!

参考

228
225
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
228
225