Edited at

仮想環境 バージョン管理 まとめ Python


概要

Pythonは2系と3系でそれぞれ互換性がありません.

この関係から二つのバージョンのものが出回っています.

仮想環境管理の方法が分かりやすく紹介しているスライドがあったので

そのスライドの内容をお借りし,自分がメインで使っているvirtualenvの内容を付け足しました.

詳しく知りたい方は,参考文献を参照してください.

pyenv-virtualenvはディレクトリごとに設定でき,vitualenvと違って使用時にactivateする必要がないので一番おすすめです


仮想環境紹介


virtualenv

・同一バージョンのPythonで使用するライブラリを切り替えて使えるようにするツール

・pip でインストールできる

・Windowsでも使える



<引用:機械学習名古屋_第7回勉強会_Python環境構築方法.key>


pyenv

・色々なPythonバージョンを管理するツール

・Python2系と3系を切り替えて使える

・shellやディレクトリで使用するPythonを指定可能

・同一バージョンのPythonでライブラリを切り替えて使うことはできない

・Windowsでは使えない



<引用:機械学習名古屋_第7回勉強会_Python環境構築方法.key>


pyenv-virtualenv

・pyenvで同一バージョンのPythonでライブラリを切り替えて使えるようにしたツール

・作者はpyenvと同じ方

・Windowsでは使えない



<引用:機械学習名古屋_第7回勉強会_Python環境構築方法.key>


インストール・使用

LinuxとWindowsのインストール方法も紹介しているのですが,

文量が多くなるのでMacのみに省略させていただきます.


virtualenv


インストール


インストール

$ pip install virtualenv



仮想環境作成

$ virtualenv -p [Pythonバージョン] [仮想環境名]

# 例
$ virtualenv -p 3.5 python3.5



使用


使用

$ source [仮想環境名]/bin/activate

# 例
source python3.5/bin/activate


成功すると端末の表示が

(python3.5)$

と変更しているはずです.


終了

$ deactivate


環境の削除を行いたい場合は,作成ディレクトリを削除すればOKです.


pyenv-virtualenv


インストール


インストール

$ brew install pyenv-virtualenv



環境変数設定(bashの場合,デフォルトはbashです)

$ echo 'export PYENV_ROOT="/usr/local/var/pyenv"' >> ~/.bash_profile

$ echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bash_profile
$ echo 'if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile

bash以外のシェルを使用の方は.bash_profileの部分を変更してください.


環境変数設定(zshの場合)

$ echo 'export PYENV_ROOT="/usr/local/var/pyenv"' >> ~/.zshrc

$ echo 'if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi' >> ~/.zshrc
$ echo 'if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi' >> ~/.zshrc
$ source ~/.zshrc


Pythonインストール

pyenv install [Pythonバージョン]



仮想環境作成

$ pyenv virtualenv [Pythonバージョン] [仮想環境名]

# 例
$ pyenv virtualenv 2.7.11 Py2Base
$ pyenv virtualenv Py2Base py2-test


仮想環境から新しい仮想環境を作った場合はライブラリ等も引き継がれるようです.


使用


標準で使用するPythonを変更

$ pyenv global [仮想環境名]



現在のshellのPythonを変更

$  pyenv shell [仮想環境名]



現在のディレクトリのPythonを変更

$ pyenv local [仮想環境名]



仮想環境削除

$ pyenv unisntall [仮想環境名]



参考文献

機械学習名古屋_第7回勉強会_Python環境構築方法.key