今回、virtualenv について簡単に触れてみようと思います。
virtualenv については、既にサイトやブログで紹介しているところが多い。私も幾つかの記事を読んでみたが、「どうもイマイチわからない」 という状態だった。
しかし実際に使ってみると、かなり便利だということがわかってきた。このため、『メモ書き+α』 レベルで virtualenv について書いてみる。
virtualenv の機能
virtualenv は Python の仮想環境を提供する。こう書くと、 「あれ、Python の環境自体が仮想ではないの?」 と思う人がいるかもしれない。実は私もそう思いました・・・。
もう少し付け足して書くと、virtualenv は Python のいろいろな実行環境を仮想的に提供する、と言っていいだろう。
「いろいろな実行環境」というのは、バージョンの違う Python実行環境のことを指しているし、同一バージョンでもインストール済みモジュールが違う環境のことも示している。
実際に virtualenv を導入し、使用したのが左のイメージになる。
左上のコマンドプロンプトは、仮想環境でなくデフォルトの Python を使用している。他のウィンドウは、virtualenv で設定した Python 仮想環境を使用している。
各ウィンドウの Python のバージョンと、導入済みのモジュールが全部違うのを確認できる。
virtualenv の活用方法としてまず考えられるのは、テスト環境の構築である。ただ私個人では、テスト環境構築に virtualenv を活用するというのはあまり考えていない。
開発では主に Python 2.5 を利用しているのだが、Python 2.7 や Python 3.2 がリリースされてから、2.5 より高いバージョン向けにパッケージ化されたモジュールが多くなった。これらのモジュールを試したり、ソースを一部修正したい場合に、他のバージョンの Python を使う時がある。そんな時 virtualenv を使えば便利だなと思う。
virtualenv 導入での考慮点
記事の始めの方にも書いたが、virtualenv に関する記事は分かりにくいものが多い。これには理由がある。多くの記事で、virtualenv と共に virtualenvwrapper の説明がされているからである。
virtualenvwrapper は virtualenv を使いやすくするツールではあるが、一つ大きな問題がある。virtualenvwrapper は Windows ではそのままでは動かない(インストールは可能)。 virtualenvwrapper は bashスクリプト を使っているため、Unix系OSでしか動かない。Windowsで動かすためには、Cygwin 等の導入が必要である。今回は難しいことは考えず、virtualenv だけを説明する。ときどき使用する程度なら virtualenv のコマンドを直接使うのも、それほどは不便ではないからである。
もし Windows で virtualenvwrapper のようなツールを使いたい場合、env.py といったものもあるようである。
参考: Ehrenの日記 - Windowsでもvirtualenvwrapperっぽい環境をつくる
virtualenv の導入
virtualenv の導入は簡単である。pip を利用し次のコマンドでインストールする。
pip install virtualenv
Python3 系でも pip コマンドで virtualenv のインストールは完了する。しかし現在の virtualenv 1.6.1 には問題があるようだ。仮想環境を作成するときにエラーが出て止まってしまう。
参考: github - pypa/virtualenv - Multiple Python 3 issues
修正版: github - pnasrat/virtualenv - Virtual Python Environment builder
virtualenv の利用
- 仮想環境の作成
- コマンドラインから次のコマンドで仮想環境を作成する。
virtualenv DEST_DIR
もしくはpython virtualenv.py DEST_DIR
DEST_DIR は作成する仮想環境フォルダの名前。例えば DEST_DIR に python_test と指定すると、現在のフォルダ下に python_test が作成され、その中に仮想環境が構築される。DEST_DIR は絶対パスでの指定も可能。virtualenv --no-site-packages DEST_DIR
--no-site-packages オプションを付けると、インストール済みのモジュールを全て外した状態で仮想環境が作成される。
- 仮想環境の実行
- 仮想環境を実行するためには、コマンドラインで作成した 仮想環境フォルダ に移動する。さらにフォルダ内の scripts フォルダに移動し、次のコマンドを実行する。
activate
仮想環境を実行すると、仮想環境作成で指定したフォルダ名が括弧に入って表示されるようになる。
- 仮想環境の停止
- コマンドラインで作成した仮想環境フォルダ下の scripts フォルダに移動し、次のコマンドを実行する。
deactivate
参考: ウノウラボ - 2009年版Python開発環境を整えよう