2016/06/05

Day XXX: virtualenv で python3 環境を作成

Mac OSX を前提とし、これから作っていくものを python3 仮想環境上で動作させることを想定する。
pythonの仮想環境は pyenv (pyenv-virtualenvpyenv-virtualenvwrapper) と virtualenv (virtualenvwrapper) の2通りがあるが、私の趣味で virtualenv を使うことにする。
virtualenv の場合は、pythonを Homebrew 等で自前で用意する。
また、pythonパッケージ管理は anaconda と pip があるが、これも私の趣味で pip を使うことにする。
pythonの管理、パッケージ管理の両方でまとめて出来る conda もある。
pyenv, anaconda, conda もそのもののインストールは Homebrew で行うが、使い方の組み合わせは以下になることが多いと思われる。

python管理python仮想環境管理pythonパッケージ管理
Homebrewvirtualenv (virtualenvwrapper)pip
pyenvpyenv-virtualenv (pyenv-virtualenvwrapper)anaconda
condacondaconda

El Capitan の Rootless 問題対策は Qiita:【El Capitan】Mac OSX 10.11にHomebrewインストールに良くまとまっている。
Homebrew の git repository は変更される可能性があるので、Homebrew 本家を確認した方が良い。
Homebrew をインストールしたら、Homebrew で python3 をインストールする
command prompt$ brew install python3
上記のインストールでは、{setuptools}, {pip}, {wheel} の3つの python パッケージが自動でインストールされる。まずはこの3つを pip3 を使って upgrade する。
command prompt$ pip3 install --upgrade pip setuptools wheel
次にやはり pip3 で virtualenv および virtuelenvwrapper をインストールする
command prompt$ pip3 install virtualenv virtualenvwrapper
使用しているシェルの設定ファイル(bash なら ~/.bashrc、zsh なら ~/.zshrc)に以下の記述を追加して、virtualenv の設定を行う。
シェル設定ファイルexport WORKON_HOME=${HOME}/.virtualenvs
export PROJECT_HOME=${HOME}/Projects
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--always-copy'
if [[ -f /usr/local/bin/virtualenvwrapper.sh ]]; then
    source /usr/local/bin/virtualenvwrapper.sh
fi
WORKON_HOME が各仮想環境で使用するシステムファイルが配置されるディレクトリで、PROJECT_HOME が各プロジェクトが作られるディレクトリである。 PROJECT_HOME は予め作っておく。
この設定後は source コマンドやターミナルを再立ち上げすることで、設定を読み込む。

python 仮想環境の作り方は2通りある。まずは汎用的な python 仮想環境を作る場合。
command prompt$ mkvirtualenv --python=/usr/local/bin/python3 --always-copy autograd-learn
上記コマンドを実行すると、WORKON_HOME 以下に autograd-learn が作成され、workon autograd-learn とコマンド入力すると python 仮想環境に移行する。
そして特定のプロジェクトに固有の python 仮想環境を作成する場合。
command prompt$ mkproject --python=/usr/local/bin/python3 --always-copy autograd-learn
上記コマンドを実行すると、WORKON_HOME 以下に autograd-learn が作成され、さらに PROJECT_HOME 以下に autograd-learn ディレクトリが作成される。workon autograd-learn とコマンド入力すると、自動的に ${PROJECT_HOME}/autograd-learn に移動する。また cdproject とコマンド入力すると、前記プロジェクトのホームディレクトリに移動する。
setvirtualenvproject コマンドで python 仮想環境とディレクトリ(プロジェクト)の関係を後から設定できるが、あくまで python 仮想環境とプロジェクトは1対1の関係である。
上記 mkvirtualenv と mkproject のコマンド例は --python と --always-copy(virtualenv へのオプション)を指定したが、省略するとそれぞれシェル設定ファイル中の VIRTUELENVWRAPPER_PYTHON, VIRTUALENVWRAPPER_VIRTUALENV_ARGS が使われる。

0 件のコメント:

コメントを投稿