こないだ作ったDebian lennyのcoLinux環境はサクサクと動いて大変便利なのだけど、aptでインストールできるPythonのバージョンが2.5だった。2.6はtestingやunstableにしか用意されていない上に、こいつを迂闊に入れると依存しているlibc6も一緒にパッケージバージョンが上がってしまってapt環境が壊れそうで怖い。
しかし書籍のPythonに関する記事は大抵バージョン2.6以降を前提に解説されているので、ローカル環境では2.6を入れて使いたい。ググってみると、何ちゃってdebパッケージを作って入れる方法などが見付かるのだけど、なるべくaptに影響を与えない形でインストールしたい。
ので、2009年版Python開発環境を整えようという記事を参考に、virtualenvによる仮想環境を作ってみることにする。
まずはpython2.6パッケージのソースコードを取得してPython 2.6をコンパイルする。事前にzlibを準備しておかないと、「コンパイルは通ったのにzlibモジュールが使えない!」という場面に遭遇してvirtualenvがうまく実行できないので注意(参考:Mercurial の利用 > インストール)。最初ここで引っ掛かってしまった。
ひとまず${HOME}/local/Python2.6にインストールする。
$ sudo apt-get install zlib1g-dev $ apt-get source python2.6 $ cd python2.6-2.6.5+20100706 $ ./configure --prefix=${HOME}/local/Python2.6 $ make $ make install $ ~/local/Python2.6/bin/python -V Python 2.6.5+
python-setuptoolsパッケージに含まれるeasy_installコマンドでインストール。1.4.9が入った。
$ sudo apt-get install python-setuptools $ sudo easy_install virtualenv $ virtualenv --version 1.4.9
先ほどホームディレクトリ以下にビルドしたPython 2.6を指定して仮想環境を作成する。結構時間がかかった。
$ virtualenv --python=${HOME}/local/Python2.6/bin/python ~/mypy26
apt経由でインストールされているPython 2.5でも仮想環境を作ってみる。
$ virtualenv --python=/usr/bin/python ~/mypy25
これで、システム環境とは独立した自分用のPython仮想環境ができた。activateスクリプトを実行して、活性化させる環境を切り替えて、バージョンを確認してみる。このスクリプトを実行すると、環境変数PATHを書き換えてくれるみたい。
$ source ~/mypy26/bin/activate $ python -V Python 2.6.5+ $ source ~/mypy25/bin/activate $ python -V Python 2.5.2
個別の仮想環境にipythonを入れて使うこともできる。
$ pip install ipython $ pip install readline
仮想環境を非活性化させたい時は、deactivate関数をコールする。
$ deactivate
ということで、思ったよりも簡単に仮想環境を作れて、とても便利。
easy_installは個人ディレクトリにインストールすることもできるので、root権限のもらえないレンタルサーバや、他人と共有の開発環境などで、任意のバージョンのPythonを使いたい場面でも有用かもしれない。
最近のツッコミ
参号館 日記(ariyasacca)