virtualenvでテスト環境を構築

Pythonの話。
試してみたいライブラリがあるとき、そのライブラリを一度インストールしてしまうと、やっぱやめた、というときに実行環境の原状復帰がなかなか難しいという問題がある。復帰の際に環境を壊してしまって、今まで動いていたものも動かなくなるのが怖い。
壊れかけの例。↓

テスト環境を作れれば、こんな心配もなくなる。

そこでvirtualenvを試してみる。これを使えば、別個のPython環境を一時的に構築できる。オリジナルのPython環境とは独立なので、いらなくなったら削除すればよい。掃除が簡単。

CentOSにvirtualenvをインストール

参考サイト:http://labs.unoh.net/2009/12/2009python.html

easy_installを使えば、完全自動でできる。

[root@localhost]# yum install python-setuptools
[root@localhost]# easy_install virtualenv

[hoge@localhost]$ which virtualenv
/usr/bin/virtualenv

複数のバージョンのPythonがインストールされている、自分の環境だと少し面倒なことになっている。Python2.6の環境を作りたいのに、Python2.4で環境が作られてしまう。「yum install python-setuptools」の時点でPython2.6の指定を何らかの形で行わなければならなかったに違いない。
easy_installでインストールするのではなく、パッケージをダウンロードして、virtualenv.pyを実行する方がいろいろと無難。

virtualenvでPythonの実行環境を構築

testenvという名前のテスト環境を新規に作る場合は以下のようにする。

[hoge@localhost]$ virtualenv --no-site-packages testenv
[hoge@localhost]$ cd testenv
[hoge@localhost]$ ls
bin/  include/  lib/
[hoge@localhost]$ . bin/activate
(testenv)[hoge@localhost]$

ディレクトリtestenvの中のbinにある、スクリプトactivateを実行することで、bin/の中の実行モジュールにパスが通る。pipとかも使えるようになる。

ここでは、GoogleMapsのライブラリ(googlemaps · PyPI)を試してみる。もちろんまだインストールされていないので、テスト環境にインストールしてみる。

(testenv)[hoge@localhost]$ pip install googlemaps

このgooglemapsライブラリは、テスト環境にだけインストールされる。ここでインストールしたものは、オリジナルの環境ではimportできないので注意。

(testenv)[hoge@localhost]$ python
>>> import googlemaps
>>>