pythonでの環境構築の手順をまとめます。
追記
pythonbrewは現状ではdeprecatedになってしまったので、似たような別プロダクトであるpyenvで記述を修正しました。
pythonbrew, pyenvをインストールする
pyenvはシステムのpythonを使わず、各バージョンのpythonを切り替えて使用できるようにするために使う。例えば2.6, 2.7, 3.0でそれぞれのバージョンに依存したプロジェクトを作成している場合、プロジェクトごとにpython切り替えなければならない。
次のvirtualenvと組み合わせてプロジェクトごとにクリーンな環境を用意する。
virtualenvはパッケージ環境をプロジェクトごとに用意するために使う。virutalenvが使うpythonを「pyenvでインストールしたpython」にすることでシステムpythonへの依存をなくす。
例:
プロジェクトA(python2.6, 依存パッケージA,B)
プロジェクトB(python2.7, 依存パッケージB,C),
プロジェクトC(python3.0, 依存パッケージA,C)
pyenvで利用するPythonのバージョンをインストールする
プロジェクトで使用するバージョンのPythonを用意する。ライブラリのパッケージはvirtualenvの--no-site-packages
でクリーンにインストールされるので、あくまでPythonバージョンとしての用意になる。
システムで用意されているPythonを使う場合には、ここでの作業は不要で次の仮想環境を作成するときに、そのPythonをvirtualenvの--python
で指定すれば良い。システムにないPythonを使うときなど自前で用意したPythonバージョンを使うときに、pyenvでPythonをインストールする。
$ pyenv install 2.7.5
これでPythonをダウンロード&ビルドしてインストールすることができる。ビルドエラーになった場合は、Common build problems · yyuu/pyenv Wikiなどを参考にしてみる。
インストールされたpythonは~/.pyenv/versions/2.7.5/bin/python
のようにpyenvのPYENV_ROOT以下にインストールされている。
プロジェクトの仮想環境を作成
virtualenvで仮想環境を作成する。
$ virtualenv --no-site-packages --python [pyenvでinstallした任意のpythonのパス] env
–no-site-packagesでパッケージ環境を空で作成。pythonのパスも指定。envというのは仮想環境の名前なので任意。
作成した仮想環境をアクティブにする。
$ source env/bin/activate
これでpyenvでインストールした特定バージョンのpythonが使われ、パッケージ環境はまっさらになります。
パッケージを利用する
pipで使いたいパッケージを追加。インストールされるのは仮想環境内なので自由にインストールしてよい。
$ pip install my-some-package
インストールされた依存パッケージを記述ファイルに出力する
このプロジェクトで使用されているパッケージをpackages.txtに出力し、環境を再度構築するときや、他の人がすぐに環境構築できるようにする。
$ pip freeze > packages.txt
環境を再構築するとき
まっさらなパッケージ環境から、依存パッケージをインストールし直す時。
$ pip install -r packages.txt
freezeした時に生成されたパッケージ情報から必要なパッケージをインストールする。