2013年08月07日

pythonz + virtualenvwrapperによるPython開発環境の構築

05/22の記事で、Homebrewを使ったPython開発環境の構築方法を紹介した。Homebrewは優れたパッケージ管理システムでとても利用価値が高いので、Macでオープンソース系のプログラム開発をやるならぜひ使用することを勧めるが、Pythonプログラミングができる環境だけあればそれで十分だという人もいるかもしれない。そういうプログラマのために、pythonzというものを紹介しよう。これはPythonだけに特化したパッケージ管理システムだ。Homebrewとはまったく別のものなので、先にHomebrewをインストールしておく必要はない。このpythonzを使うと、任意のバージョンのPythonをインストールすることができる。Homebrewより操作が容易なので、もしPython環境だけしか必要ないならpythonzを使った方が楽じゃないかと思う。pythonzにvirtualenvとvirtualenvwrapperを組み合わせることで仮想環境を構築することもできるので、Homebrewで構築したPython環境と同じように複数のバージョンのPythonを切り換えて使うことも可能だ。それでは、pythonzのインストール方法から説明していく。

■pythonzのインストール


まずは、pythonzをインストールしないと何も始まらない。次のコマンドを実行すれば、pythonzをインストールできる。
% curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash

上のコマンドを実行すると、ホームディレクトリの中に.pythonzというディレクトリが作成され、その中にpythonz環境の全ファイルが格納される。

pythonzのインストールが終わったら、.zshrc(bashの場合は、.bash_profile.bashrc)に次のような記述を追加してやる。
# pythonz settings
[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc

これで、「source .zshrc」を実行するかターミナルを再起動すれば、pythonzが利用できるようになる。試しに、次のコマンドを実行してみると良い。このコマンドによって、pythonzで利用可能なパッケージの全バージョンが表示される。
% pythonz list -a
# Available Python versions
# cpython:
2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.6
2.6.1
2.6.2
2.6.3
2.6.4
2.6.5
2.6.6
2.6.7
2.6.8
2.7
2.7.1
2.7.2
2.7.3
2.7.4
2.7.5
3.0
3.0.1
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.2
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.3.0
3.3.1
3.3.2
# stackless:
2.6.5
2.7.2
3.1.3
3.2.2
# pypy:
1.8
1.9
2.0
2.0.1
2.0.2
2.1
# jython:
2.5.0
2.5.1
2.5.2
2.5.3

cpython」というのがPython(C++で記述されたPython)のことだ。Python以外にPyPy(Pythonで記述されたPython処理系)やJython(Javaで記述されたPython処理系)もpythonzでインストールすることが可能だ。

■pythonzによるPythonのインストール


pythonzによって特定のバージョンのPythonをインストールするには、「pythonz install VERSION」というコマンドを使えば良い。
% pythonz install 2.7.5
Downloading Python-2.7.5.tgz as /Users/yuhri/.pythonz/dists/Python-2.7.5.tgz
########################################################################## 100%
Extracting Python-2.7.5.tgz into /Users/yuhri/.pythonz/build/CPython-2.7.5

This could take a while. You can run the following command on another shell to track the status:
tail -f /Users/yuhri/.pythonz/log/build.log

Installing CPython-2.7.5 into /Users/yuhri/.pythonz/pythons/CPython-2.7.5

Installed CPython-2.7.5 successfully.

上のメッセージの中に示されているとおり、pythonzによってインストールしたPythonパッケージのファイル一式は$HOME/.pythonz/pythons/CPython-<VERSION>というディレクトリの中に格納される。

もしHomebrew側のPython環境にすでにvirtualenvとvirtualenvwrapperがインストール済みなら、そちらとpythonz側のPythonインタプリタを組み合わせて仮想環境を作成することもできる。ただし、05/22の記事で説明したvirtualenvwrappeの設定がすべて済んでいることが条件となる。Homebrew側のvirtualenvwrapperを使って仮想環境を作成するには、次のようなコマンドを実行すれば良い。
% mkvirtualenv -p ~/.pythonz/pythons/CPython-2.7.5/bin/python work

pythonzでインストールしたPythonインタプリタを利用可能な状態にするには、.zshrcを編集して、環境変数PATHの値を下のように設定しなければならない。
export PATH=$HOME/.pythonz/pythons/CPython-2.7.5/bin:$PATH

$PATHの設定値を変更したら、ターミナルを再起動して、pythonz側のPythonインタプリタが有効になっているか確認しておこう。
% which python
/Users/yuhri/.pythonz/pythons/CPython-2.7.5/bin/python
% python --version
Python 2.7.5


■virtualenvとvirtualenvwrapperのインストール


この記事の最終目標はpythonzだけでPython環境を構築することなので、続いて、上でインストールしたPython環境へvirtualenvとvirtualenvwrapperを追加する手順について説明していく。

virtualenvとvirtualenvwrapperライブラリをインストールするには「easy_install」というコマンドが必要になるが、このコマンドはsetuptoolsというライブラリの中に含まれている。そこで、まず最初にPython環境へsetuptoolsをインストールしてやる。setuptoolsのインストールは次のコマンドで行える(最後の「rehash」はzshを使っている場合のみ必要なコマンド)。
% curl -kL https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python
% rehash

上のez_setup.pyというファイルはsetuptoolsをインストールするためのPythonスクリプトで、このスクリプトをPythonインタプリタで実行してやることでsetuptoolsをインストールできる。ただし、pythonz側のPythonインタプリタが最優先で実行されるように$PATHを変更しておかないと、Mac OS XやHomebrew側のPython環境へsetuptoolsがインストールされてしまうので注意が必要だ。

setuptoolsのインストールが終わったら、「easy_install」コマンドが利用可能になっているはずだ。続いて、このコマンドを使って、pipライブラリをインストールする(最後の「rehash」はzshを使っている場合のみ必要)。
% easy_install pip
% rehash

最後に、「pip」コマンドを使って、virtualenvとvirtualenvwrapperライブラリをインストールする。
% pip install virtualenv
% pip install virtualenvwrapper

これでvirtualenvとvirtualenvwrapperがインストールできたが、virtualenvwrapperはインストールしただけでは有効にならない。virtualenvwrapperを有効にするには、下のような設定記述を.zshrcへ追加する必要がある。
# virtualenvwrapper settings
if [ -f $HOME/.pythonz/pythons/CPython-2.7.5/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=$HOME/.virtualenvs
source $HOME/.pythonz/pythons/CPython-2.7.5/bin/virtualenvwrapper.sh
fi

virtualenvwrapperによって作成される仮想環境の全ファイルは環境変数WORKON_HOMEで指定したディレクトリの中に格納されるので、あらかじめこのディレクトリを作成しておかなければならない。
% mkdir .virtualenvs

上の操作がすべて終わったら、ターミナルを再起動してやれば、virtualenvwrapperのコマンドが使えるようになっているはずだ。試しに「mkvirtualenv」コマンドを使って、仮想環境を作成してみると良いだろう。
% mkvirtualenv work
New python executable in work/bin/python
Installing Setuptools....................................................................
.........................................................................................
.................................................................done.
Installing Pip...........................................................................
.........................................................................................
.........................................................................................
........................................................................done.
(work)% which python
/Users/yuhri/.virtualenvs/work/bin/python
(work)% python --version
Python 2.7.5

以上でpythonzとvirtualenv, virtualenvwrapperを組み合わせたPython開発環境の構築は終わりだが、pythonzで別のバージョンのPythonを追加して、そのPythonインタプリタを使って仮想環境を作成する方法も説明しておく。例として、Python 3.3.2の仮想環境を作成してみる。まずは、pythonzでPython 3.3.2をインストールしてやる。
% pythonz install 3.3.2
Downloading Python-3.3.2.tgz as /Users/yuhri/.pythonz/dists/Python-3.3.2.tgz
########################################################################## 100%
Extracting Python-3.3.2.tgz into /Users/yuhri/.pythonz/build/CPython-3.3.2

This could take a while. You can run the following command on another shell to track the status:
tail -f /Users/yuhri/.pythonz/log/build.log

Installing CPython-3.3.2 into /Users/yuhri/.pythonz/pythons/CPython-3.3.2

Installed CPython-3.3.2 successfully.

上のメッセージの中で示されているとおり、Python 3.3.2のファイル一式は$HOME/.pythonz/pythons/CPython-3.3.2というディレクトリの中に格納される。したがって、Python 3.3.2の仮想環境を作成するには次のコマンドを実行しれば良い。
% mkvirtualenv -p ~/.pythonz/pythons/CPython-3.3.2/bin/python work3
Running virtualenv with interpreter /Users/yuhri/.pythonz/pythons/CPython-3.3.2/bin/python
Using base prefix '/Users/yuhri/.pythonz/pythons/CPython-3.3.2'
New python executable in work3/bin/python
Installing Setuptools....................................................................
.........................................................................................
.................................................................done.
Installing Pip...........................................................................
.........................................................................................
.........................................................................................
........................................................................done.
(work3)% which python
/Users/yuhri/.virtualenvs/work3/bin/python
(work3)% python --version
Python 3.3.2

一度pythonzとvirtualenvwrapper環境を構築してしまえば、任意のバージョンのPyhtonをインストールし、そのPythonインタプリタを使って仮想環境を作成できる。virtualenvwrapperで作成した仮想環境はpythonz側の共通環境とは独立しているので、ライブラリをどんどん追加して好きなように変更していけば良い。

タグ:python pythonz
posted by とみやん at 17:47| Comment(0) | TrackBack(0) | 開発・プログラミング > Mac
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/71998644

この記事へのトラックバック