A Way of Code

興味の赴くままに書き綴っていきます。

Mac OS X 10.7.3 Lionでpythonbrew, virtualenv, pip, buildoutなPython環境を構築する 第1回 はじめに

そうだ、Pythonをやろう
と思ったけど、Python 3とPython 2には後方互換がありません。それならPythonのバージョンを切り替える仕組みが欲しいですね、ってことで調べてみたところ、pythonbrewとvirtualenvを組み合わせて使い、ライブラリの管理・インストールはpipもしくはdistributeを使い、ビルドシステムとしてbuildoutを使う、というのが良さげです。

ということで、MacでPythonまわりの開発環境を作ったときのメモです。

第1回 はじめに (この記事):
http://toggtc.hatenablog.com/entry/2012/02/06/023342
第2回 pythonbrewとPythonのインストール:
http://toggtc.hatenablog.com/entry/2012/02/06/023652
第3回 仮想環境の構築:
http://toggtc.hatenablog.com/entry/2012/02/06/023807
第4回 hello, buildout:
http://toggtc.hatenablog.com/entry/2012/02/06/024326

pythonbrew? virtualenv??

Pythonは現状ではパッケージ管理の仕組みがいろいろとあって、どれも決め手に欠けるのですが、将来的にはpackaging(distutils2)というものに置き換わっていくようです。
f:id:toggtc:20120127001317p:image

どんなことが出来るの?

pythonbrew, virtualenv, buildoutを組み合わせてどんなことができるのか?を妄想してみました。
f:id:toggtc:20120206000528p:plain
この例では、2.5.6の環境はGAEアプリ開発用として構築しています。ここでは2.5.6の環境はGAEアプリ用にしか使わないので、仮想化せず実環境を直接利用しています。ただし、buildoutを使っているので、Python本体の環境を汚しません。
2.7.2の環境は、Webサービスクライアントの開発と科学計算モジュールの開発に使うので、それぞれの用途別に2.7.2環境を"py27_web", "py27_sci"として仮想化しています。仮想環境として分けているため、"py27_web"と"py27_sci"はお互いに独立しています。
3.2.2の環境は、仮想化した"py32_lib"をライブラリAの開発用とし、実環境側をライブラリBの試験用として実際にインストールすること等を想定してみました。

素人考えなので突っ込みどころが満載かもしれませんが、仮想環境を作ることで柔軟性が増すということがイメージできれば幸いです。

次回 pythonbrewとPythonのインストール:http://toggtc.hatenablog.com/entry/2012/02/06/023652