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/activate
Windows:
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 です。
以上です。