2016年6月10日金曜日

pyenvp

pyenv というものがあるらしい。virtual-env とは何が違うんだろうか。
ここを参考に。
  • Python のバージョン管理システムで、複数のPythonバージョンが共存できるようにしてくれる。
  • ディレクトリごとに、Pythonを指定できるようにしてくれる。
  • もともとPythonbrew という名前だったらしい。
virtualenv のほうは、一つのバージョンのPythonの中で、複数のパッケージ環境を用意するもの。pyenv は複数のバージョンを使えるようにするもの、ということで直行しているようだ。
mac ではbrewで簡単に入る。
> brew install pyenv

> pyenv install -l
とやると利用可能なpythonのバージョンリストが表示される。
jythonとかpypy とかも選べる。
> pyenv install 3.5.1
とやると 3.5.1 がインストールされる。これをデフォルトにするには、globalを使う。
> pyenv global 3.5.1
> python --version

Python 3.5.1
特定のディレクトリに特定のバージョンのpythonをバインドするには、local を使う。
> cd /tmp
> pyenv local 2.7.11
> python --version
Python 2.7.11
> cd 
> python --version
Python 3.5.1
local は、サブディレクトリに対しても効果を持つ。また、local を解除するには—unsetを用いる。
> pyenv local --unset

virtualenv との連携

virtualenv と連携して、versionの一つとして、virtualenv を作ることができる。自動的にactivate / deactivate してくれて便利。下記のようにすると、install と同じレベルのコマンドとしてvirtualenvが追加される。
> brew install pyenv-virtualenv
でインストール。bashrcとかに下記を追加。
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi

virtualenv をつくる

既存のversion をベースにvirtualenvを構築できる。
> pyenv virtualenv 3.5.1 newenv
> pyenv local newenv
> python --version
Python 3.5.1
ただ、anaconda をベースに作ることは、どうもできないっぽい。2.7.11がダウンロード?されてまっさらな環境が作られているような気がする。

0 件のコメント: