Virtualenv¶
Virtualenvの目的¶
VirtualEnv はPythonの仮想環境を作ります。それだけですが、非常に便利です。 virtualenvwrapper も合わせて使うと便利らしいです。 workingenv や virtual-python の後継という位置づけのようです。
今回はPython環境を一切変更せずに導入する方法で進めます。
注釈
2010/9/8追記
VirtualEnvでGoogleAppEngineの開発は出来ないらしいと聞いたのですが、 だれか成功している人は shimizukawa at gmail.com までご連絡下さい。
筆者のお勧めはvirtualenvではなくbuildoutを使うことです。 詳しくは Google App Engine (GAE/py) の開発環境をつくる を参照
virtualenvをゲット¶
http://pypi.python.org/pypi/virtualenv から virtualenv-1.4.9.tar.gz を取得
中身から virtualenv.py をゲット, どこか(仮に/tmpとする)に置いておく。
virtualenv環境を作成¶
python /tmp/virtualenv.py env1
のようにして環境を作ります。
複数のPythonがインストールされている人は今回使いたいPythonを使ってください。
以降、そのPythonのバージョンに環境が固定されます。
$ python /tmp/virtualenv.py --no-site-package env1
$ cd env1
$ source bin/activate
(env1)$
これで専用環境ができました。
注釈
Windowsの人は source bin/activate の代わりに Scripts/activate.bat です。
警告
Macでvirtualenvがうまくいかない場合があります。問題になるのはMac標準の Pythonを使用している(MacPortsのPythonを使用していない)場合や、Macで複数 のPythonをsymlinkで切り替えている場合です。
こういった環境の場合、virtualenv環境下でeasy_installを行うと、Mac標準の Python環境下のsite-packagesにインストールされてしまう問題が発生します。
これに該当する場合、virtualenvの環境作成時に
virtualenv -p [python-interpreter] env1
のように-pオプションで実際に
使用するPythonインタプリタを指定するとうまくいく場合があるようです。
これでもうまくいかない場合は内部で利用するモジュールをeasy_installでは
なくdistributeを使うように virtualenv --distribute env1
のように
オプション指定すると解消される場合があるようです。
参考: virtualenv not working with default Python on Mac OS 10.6
easy_installしてみる¶
virtualenvで環境を作ると、easy_installコマンドが自動的に使えるようになります。
試しに本体のPythonにインストールしていない何かをeasy_installしてみてください。
例えば aodag.util
とか:
(env1)$ easy_install aodag.util
(env1)$ mkpkg foo.bar
インストールされたmkpkgはこのenv1環境でしか使えません。 また、 --no-site-package オプションを付けたので、Python本体にeasy_install などでインストールしているものがあっても使うことは出来ません。
まとめ¶
VirtualenvはPython環境から独立して好きなようにeasy_installできる環境です。 要らなくなったらディレクトリごと削除してしまえます。 その代わりに、Virtualenv環境毎にインストールパッケージが独立してしまうので あまり作りすぎるとDISKを圧迫します。インストールのたびにダウンロードするし。
おまけ¶
--distribute オプションを付けるとsetuptoolsの代わりにdistributeを使います。
pipも自動的に入っています
virtualenv.py のコード内に上記がこっそり同梱されています