ライブラリ:virtualenv

Pythonのライブラリ virtualenv についてご紹介します。

virtualenv は独立した Python 環境を手軽に構築できるようにしてくれるツールです。コマンドラインから使うタイプのものとなります。

たとえば

  • 複数のPython環境を作って、手軽に切り替えて使いたいとき
  • 一時的に利用する使い捨ての環境を作りたいとき

なんかに便利です。

具体的には、「 Python を動かすのに必要なセットを任意のディレクトリに作る」ということをコマンドひとつでやってくれます。

一度馴染めば、使うコマンド・オプションはごくわずかだしシンプルなツールなのですが、一見、ちょっとややこしいものに見えるかもしれません。

以下、ざっとシンプルに、使い方を見ていきたいと思います。まずはインストールから。

virtualenv のインストール

pip が入っていれば、コマンドから次のように打てば入ってくれます。

pip install virtualenv

コマンドラインから次のように入力してヘルプが表示されればインストールは成功です。

virtualenv

確かにインストールしたのに virtualenv コマンドが使えない場合にはパスが通っていない可能性が高いです。例えば、 Windows の場合は Python ディレクトリ内の「 Scripts 」にパスを通しましょう。

pipeasy_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 では、 setuptoolspip とが自動でインストールされるので、最初から使うことができます。ただ、 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 です。

以上です。

参考