Python VirtualEnv
virtualenv は Ian Bicking によって書かれた Python ツールで、Python の隔離環境を作成するのに使われます。他の virtualenv やシステムの Python パッケージに煩わされることなくパッケージをインストールすることができます。この記事では virtualenv パッケージのインストールと、パッケージに付随しているコマンドラインユーティリティ virtualenvwrapper について扱っています。virtualenvwrapper はワークフローを改善するために Doug Hellmann によって作成されました。仮想環境の中で作業を開始するクイックハウツーも記載しています。
仮想環境の概要
virtualenv はプロジェクトに必要な様々なバージョンの管理や、パッケージの依存関係に対処しなくてはならない問題を解決するために作られたツールです。例えば、あなたが Django によるウェブサイトを2つ作成するとして、片方は Django 1.2 が必要なのにもう一方は古き良き 0.96 を必要とする場合を考えて下さい。両方を /usr/lib/python2/site-packages
にインストールして両方のバージョンを利用することはできません。virtualenv があればそれが可能です。隔離環境を2つ作成して、開発環境を2つにすれば上手くいきます。
vitualenvwrapper はお気に入りのコンソールから実行できる便利なコマンドを提供することで virtualenv をさらに一歩先に進めます。
venv はバージョン 3.3 で追加された ビルトインモジュール で、virtualenv と同じような API を実装しています。
Virtualenv
virtualenv は Python 2.6+ と Python 3.x をサポートしています。Python のバージョンの違いについては Python#Python 3 を見て下さい。
インストール
python-virtualenv あるいは (旧バージョンの) python2-virtualenv をインストールしてください。
基本的な使い方
virtualenv でサンドボックスを作成する高度なチュートリアルは こちら にあります。リンクが辿れない場合、アーカイブのリンク を見て下さい。シンプルな使い方は以下のようになります:
- virtualenv を作成:
$ virtualenv my_env
- virtualenv を有効化:
$ source my_env/bin/activate
- virtualenv の中にパッケージをインストール (例: Django):
(my_env)$ pip install django
- 作業を行う
- virtualenv を離れる:
(my_env)$ deactivate
Virtualenvwrapper
virtualenvwrapper は virtualenv を作成・有効化・削除する便利なコマンドを使えるようにして、より自然なコマンドライン操作で virtualenv を扱えるようにします。python-virtualenv と python2-virtualenv 両方のラッパーになっています。
インストール
公式リポジトリから python-virtualenvwrapper パッケージをインストールしてください。
そして ~/.bashrc
に以下の行を追加:
export WORKON_HOME=~/.virtualenvs source /usr/bin/virtualenvwrapper.sh
python3 をデフォルトにしていない場合 ($ python --version
の出力を確認してください)、virtualenvwrapper.sh
スクリプトを source する前に ~/.bashrc
に以下の行も追加する必要があります。現行バージョンの virtualenvwrapper-python
パッケージは python3 でのみ動作します。ただし python2 の virtualenv を作成することは問題なく可能です。
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