概要
Pythonは2系と3系でそれぞれ互換性がありません.
この関係から二つのバージョンのものが出回っています.
仮想環境管理の方法が分かりやすく紹介しているスライドがあったので
そのスライドの内容をお借りし,自分がメインで使っているvirtualenvの内容を付け足しました.
詳しく知りたい方は,参考文献を参照してください.
pyenv-virtualenvはディレクトリごとに設定でき,vitualenvと違って使用時にactivateする必要がないので一番おすすめです
仮想環境紹介
virtualenv
・同一バージョンのPythonで使用するライブラリを切り替えて使えるようにするツール
・pip でインストールできる
・Windowsでも使える
<引用:[機械学習名古屋_第7回勉強会_Python環境構築方法.key](https://speakerd.s3.amazonaws.com/presentations/0d969d6526dd4b5fa0549f4e3481745f/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E5%90%8D%E5%8F%A4%E5%B1%8B_%E7%AC%AC7%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A_Python%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E6%96%B9%E6%B3%95_20161015.pdf)>
pyenv
・色々なPythonバージョンを管理するツール
・Python2系と3系を切り替えて使える
・shellやディレクトリで使用するPythonを指定可能
・同一バージョンのPythonでライブラリを切り替えて使うことはできない
・Windowsでは使えない
<引用:[機械学習名古屋_第7回勉強会_Python環境構築方法.key](https://speakerd.s3.amazonaws.com/presentations/0d969d6526dd4b5fa0549f4e3481745f/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E5%90%8D%E5%8F%A4%E5%B1%8B_%E7%AC%AC7%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A_Python%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E6%96%B9%E6%B3%95_20161015.pdf)>
pyenv-virtualenv
・pyenvで同一バージョンのPythonでライブラリを切り替えて使えるようにしたツール
・作者はpyenvと同じ方
・Windowsでは使えない
<引用:[機械学習名古屋_第7回勉強会_Python環境構築方法.key](https://speakerd.s3.amazonaws.com/presentations/0d969d6526dd4b5fa0549f4e3481745f/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E5%90%8D%E5%8F%A4%E5%B1%8B_%E7%AC%AC7%E5%9B%9E%E5%8B%89%E5%BC%B7%E4%BC%9A_Python%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E6%96%B9%E6%B3%95_20161015.pdf)>
インストール・使用
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
$ 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**の部分を変更してください.
$ 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
pyenv install [Pythonバージョン]
$ pyenv virtualenv [Pythonバージョン] [仮想環境名]
# 例
$ pyenv virtualenv 2.7.11 Py2Base
$ pyenv virtualenv Py2Base py2-test
仮想環境から新しい仮想環境を作った場合はライブラリ等も引き継がれるようです.
使用
$ pyenv global [仮想環境名]
$ pyenv shell [仮想環境名]
$ pyenv local [仮想環境名]
$ pyenv unisntall [仮想環境名]