仮想環境

仮想環境は、異なるプロジェクトで必要とされる依存関係を別々の場所に保持するためのツールです。仮想環境は、それらのための仮想的なPython環境を作成することによって実現されます。 「Project Xはバージョン1.xに依存しますが、Project Yは4.xが必要です」というジレンマを解決し、グローバルなサイトパッケージディレクトリをきれいに管理します。

例えば、Django 1.10を必要とするプロジェクトで作業し、Django 1.8を必要とするプロジェクトを維持することもできます。

virtualenv

virtualenv は独立したPython環境を作るためのツールです。 virtualenvは、Pythonプロジェクトが必要とするパッケージを使用するために必要なすべての実行可能ファイルを含むフォルダを作成します。

pip経由でvirtualenvをインストールします:

$ pip install virtualenv

基本的な使用法

1.プロジェクトの仮想環境を作成します。

$ cd my_project_folder
$ virtualenv venv

virtualenv venv は現在のディレクトリにPythonの実行可能ファイルを含むフォルダを作成し、他のパッケージをインストールするために pip ライブラリのコピーを作成します。 仮想環境の名前(この場合、 venv )は何でもかまいません。 名前を省略すると、カレントディレクトリにファイルが配置されます。

これにより、コマンドを実行したディレクトリの中にPythonのコピーが作成され、venv という名前のフォルダに置かれます。

Pythonインタプリタ( python2.7 など)を使用することもできます。

$ virtualenv -p /usr/bin/python2.7 venv

または ~/.bashrc のenv変数でインタプリタをグローバルに変更してください:

$ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7

2.仮想環境の使用を開始するには、仮想環境をアクティブにする必要があります。

$ source venv/bin/activate

現在の仮想環境の名前がプロンプトの左側に表示されます(例えば (venv)Your-Computer:your_project UserName $) )。 これからpipを使ってインストールしたパッケージは、グローバルなPythonインストールから隔離された venv フォルダに置かれます。

パッケージを通常どおりにインストールします。例:

$ pip install requests

3.仮想環境で作業が完了した場合は、仮想環境を非アクティブにすることができます。

$ deactivate

これにより、インストールされているすべてのライブラリを持つ、システムのデフォルトのPythonインタプリタに戻ります。

仮想環境を削除するには、そのフォルダを削除するだけです。 (この場合、 rm -rf venv となります。)

しかし、しばらくすると、システム全体に散在する多くの仮想環境に陥る可能性があり、名前や場所などを忘れる可能性があります。

その他の注意事項

--no-site-packages オプションで virtualenv を実行すると、グローバルにインストールされたパッケージは含まれません。 後でアクセスする必要がある場合に備えてパッケージリストをきれいに保つのに便利です。 [これは1.7以降の virtualenv のデフォルト動作です。]

環境の一貫性を保つために、環境パッケージの現在の状態を「フリーズ」することは良い考えです。 これを行うには、

$ pip freeze > requirements.txt

これにより requirements.txt ファイルが作成されます。このファイルには、現在の環境内のすべてのパッケージとそれぞれのバージョンの単純なリストが含まれています。 “pip list”を使用して、インストールされたパッケージのリストを要件書式なしで見ることができます。 後で同じバージョンを使用して同じパッケージをインストールするために、別の開発者(または環境を再作成する必要がある場合)が簡単になります。

$ pip install -r requirements.txt

これにより、インストール全体、展開全体、および開発者間の一貫性を確保できます。

最後に、ignoreリストに仮想環境フォルダを追加することによって、仮想環境フォルダをソース管理から除外することを忘れないでください。

virtualenvwrapper

virtualenvwrapper は、仮想環境での作業をはるかに楽にする一連のコマンドを提供します。 また、すべての仮想環境を1か所に配置します。

インストールするには(virtualenv が既にインストールされていることを確認してください):

$ pip install virtualenvwrapper
$ export WORKON_HOME=~/Envs
$ source /usr/local/bin/virtualenvwrapper.sh

(Full virtualenvwrapperのインストール手順.)

Windowsの場合、 virtualenvwrapper-win を使うことができます。

インストールするには(virtualenv が既にインストールされていることを確認してください):

$ pip install virtualenvwrapper-win

Windowsでは、WORKON_HOME のデフォルトパスは %USERPROFILE%Envs です。

基本的な使用法

1.仮想環境を作成します。

$ mkvirtualenv venv

これは ~/Envs の中に venv フォルダを作成します。

2.仮想環境での作業:

$ workon venv

あるいは、仮想環境を作成するプロジェクトを作ることもできますし、 $PROJECT_HOME の中にプロジェクトディレクトリを作ることもできます。これは workon myproject を実行するときに cd されます。

$ mkproject myproject

virtualenvwrapper は環境名にタブ補完を提供します。 多くの環境があり、名前を覚えていないときには本当に役に立ちます。

workon は現在の環境を無効にするので、すばやく環境を切り替えることができます。

3.非アクティブ化はまだ同じです:

$ deactivate

4.削除するには:

$ rmvirtualenv venv

その他の便利なコマンド

lsvirtualenv
すべての環境をリストします。
cdvirtualenv
現在アクティブ化されている仮想環境のディレクトリに移動します。たとえば site-packages を参照できます。
cdsitepackages
上記と同様ですが、site-packages ディレクトリに直接入ります。
lssitepackages
site-packages ディレクトリの内容を表示します。

virtualenvwrapperコマンドの全リスト

virtualenv-burrito

virtualenv-burrito を使うと、単一のコマンドでvirtualenv + virtualenvwrapper環境を利用することができます。

autoenv

.env を含むディレクトリに cd を実行すると、autoenv が環境を自動的に起動します。

brew を使ってMac OS Xにインストールしてください:

$ brew install autoenv

Linuxでは:

$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv
$ echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc