Pythonのライブラリ virtualenv についてご紹介します。
virtualenv は独立した Python 環境を手軽に構築できるようにしてくれるツールです。コマンドラインから使うタイプのものとなります。
たとえば
- 複数のPython環境を作って、手軽に切り替えて使いたいとき
- 一時的に利用する使い捨ての環境を作りたいとき
なんかに便利です。
具体的には、「 Python を動かすのに必要なセットを任意のディレクトリに作る」ということをコマンドひとつでやってくれます。
一度馴染めば、使うコマンド・オプションはごくわずかだしシンプルなツールなのですが、一見、ちょっとややこしいものに見えるかもしれません。
以下、ざっとシンプルに、使い方を見ていきたいと思います。まずはインストールから。
virtualenv のインストール
pip が入っていれば、コマンドから次のように打てば入ってくれます。
pip install virtualenvコマンドラインから次のように入力してヘルプが表示されればインストールは成功です。
virtualenv確かにインストールしたのに virtualenv コマンドが使えない場合にはパスが通っていない可能性が高いです。例えば、 Windows の場合は Python ディレクトリ内の「 Scripts 」にパスを通しましょう。
pip や easy_install が入っていないあるいは使えない場合には、 PyPI の virtualenv のページ から tar.gz 一式をダウンロードしてきましょう。その中にある「 virtualenv.py 」を取り出してこれば、これ単体で使うことが可能です(レンタルサーバなんかで使う場合はこちらになるかと思います)。
独立環境の作成
実際に virtualenv を使ってみましょう。適当なディレクトリに行き、次のコマンドを実行します。
virtualenv myenvすると、カレントディレクトリに myenv というディレクトリが作られ、その中に Python 環境一式が入れられます。 myenv の部分は任意の名前を入力します。
上述の「 virtualenv.py を単体で使う場合」では、次のようにすれば OK です。
python virtualenv.py myenv独立環境の利用
つづいて、作成した独立環境を利用する方法についてです。まずは独立環境のディレクトリに移動します。
cd myenv次に、独立環境に切り替えます。
Linux:
source bin/activateWindows:
Scripts\activateシェル(コマンドプロンプト)の先頭が次のように切り替わったら、無事その環境に入れた証拠です。
(myenv) ...この状態で Python スクリプトをコマンドラインから実行すると、作成した環境の中で走らせることができます。
Linux 環境の場合は、シバン( Shebang )で独立環境の python.exe を指定すると、都度都度コマンドを打たなくても、その環境を使うことが可能です。
which コマンドが使えるなら、 which コマンドで確認してみるのもよいかと思います。独立環境内の python.exe が呼ばれていることが確かめられます。
which python独立環境から元に戻る
独立環境から抜けるには次のように打ち込みます。
deactivate独立環境での pip の利用
virtualenv が特に有用なのは pip などを使ってライブラリ・パッケージを入れるときです。
virtualenv では、 setuptools と pip とが自動でインストールされるので、最初から使うことができます。ただ、 setuptools は更新が止まっているので、 setuptools に代わる distribute を使うのがよいかと思います。 setuptools の代わりに distribute を入れるには、 virtualenv コマンドに --distribute オプションをつけます。
virtualenv --distribute myenv2 && cd myenv2あとは「 Scripts\activate 」で環境を切り替えてから pip freeze とすると、その環境の中のパッケージ一覧を確認することができます。
Scripts\activate
pip freeze他のPCと環境を合わせたいときなんかには、コピー元の環境で
pip freeze > requirements.txtとしてパッケージ一覧を作成しておき、コピー先で次のようにすると、同じパッケージ群をまとめてインストールすることができます。
pip install -r requirements.txt独立環境の削除
使い終わったら、最初の virtualenv で作られたディレクトリをまるごと削除すれば OK です。
以上です。