Python/仮想環境
virtualenv は Python の隔離環境を作成するために使われるツールです。モジュールを隔離環境にインストールできる、作業環境をエクポートできる、Python プログラムをその環境で実行できるといった様々な利点があります。
目次
仮想環境の概要
仮想環境はいくつかのバイナリとシェルスクリプトがインストールされたディレクトリです。バイナリはスクリプトを実行するための python と 環境に他のモジュールをインストールするための pip を含んでいます。また環境に入るためのシェルスクリプト (bash、csh、fishで動作します) も含まれています。基本的に、仮想環境はシステムにインストールされた Python とすべての望まれたモジュールを、アプリケーションがどんなシステム上で動作しようと干渉されずに模倣します。
インストール
Python 3.3 以上では pyvenv と呼ばれるツールとネイティブ実装を拡張するための venv と呼ばれる API が付属しています。古いバージョンの Python を必要とするアプリケーションでは virtualenv を使う必要があります。
パッケージ
Python の仮想環境を利用するために 公式リポジトリ から次のパッケージをインストールしてください。
- Python 3.3+: python
- Python 3: python-virtualenv
- Python 2: python2-virtualenv
使い方
3つのツールの使い方は似ています。
作成
あなたのプロジェクトディレクトリ内で pyvenv か virtualenv を使って仮想環境を作成してください。必ず venv ディレクトリをバージョン管理から外してください。pip freeze
のコピーがあればリビルドすることができます。
pyvenv
このツールは python (3.3 以上) で提供されています。
$ pyvenv venv
python 3.6 から pyenv スクリプトは非推奨になりました。上記のコマンドは以下のように実行するようにしてください:
$ python -m venv venv
virtualenv
Python 3 には python-virtualenv に含まれる virtualenv を使ってください。
$ virtualenv venv
Python 2 には python2-virtualenv に含まれる virtualenv2 を使ってください。
$ virtualenv2 venv
有効化
環境を有効化・無効化するために提供されているシェルスクリプトを使います。この例は bash が使われていると仮定します。
$ source venv/bin/activate (venv) $
仮想環境の中に入ると、pip を使ってモジュールをインストールしたり通常通りにスクリプトを実行することができます。
仮想環境から抜けるには bin/activate
によって提供される関数を実行してください:
(venv) $ deactivate
Python のバージョン
バイナリのバージョンはどの仮想環境ツールが使われたかに依存します。例えば、Python 2 の例では python コマンドは bin/python2.7
を指しますが、pyvenv の例では bin/python3.5
を指します。
pyvenv と virtualenv 大きな違いは、前者はデフォルトでシステムの Python バイナリを使います:
$ ls -l pyvenv/bin/python3.5 lrwxrwxrwx 1 foo foo 7 Jun 3 19:57 pyvenv/bin/python3.5 -> /usr/bin/python3
virtualenv は環境のディレクトリ内の別の Python バイナリを使います:
$ ls -l venv3/bin/python3.5 lrwxrwxrwx 1 foo foo 7 Jun 3 19:58 venv3/bin/python3.5 -> python3
Virtualenvwrapper
virtualenvwrapper は virtualenv を作成・有効化・削除する便利なコマンドを使えるようにして、より自然なコマンドライン操作で virtualenv を扱えるようにします。python-virtualenv と python2-virtualenv 両方のラッパーになっています。
インストール
公式リポジトリから python-virtualenvwrapper パッケージをインストールしてください。
そして ~/.bashrc
に以下の行を追加:
export WORKON_HOME=~/.virtualenvs source /usr/bin/virtualenvwrapper.sh
Python 3 が Arch においてシステムのデフォルトなので、Python 2 の環境を作るためには ~/.bashrc
で virtualenvwrapper.sh
を読み込む前に VIRTUALENVWRAPPER_PYTHON
と VIRTUALENVWRAPPER_VIRTUALENV
をセットする必要がります:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7 export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv2
Python 3 をデフォルトにしていない場合 ($ python --version
の出力を確認してください)、virtualenvwrapper.sh
スクリプトを source する前に ~/.bashrc
に以下の行も追加する必要があります。
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
コンソールを再度開いて WORKON_HOME
フォルダを作成してください:
$ mkdir $WORKON_HOME
基本的な使い方
virtualenvwrapper の使い方に関しては Doug Hellmann の ページ が参考になります。
- virtualenv を作成:
$ mkvirtualenv -p /usr/bin/python2.7 my_env
- virtualenv の有効化:
$ workon my_env
- virtualenv の中にパッケージをインストール (例: Django):
(my_env)$ pip install django
- virtualenv を離脱:
(my_env)$ deactivate