Pythonbrewとvirtualenvは何が違うのか
僕はPythonの環境管理にvirtualenvを使っているが、Pythonbrewも一応インストールされている。
一体二つは何が違うんだ?とふと気になったので調べたら、上記のページが見つかった。
pythonbrewの特徴
perlbrewやrvmを使っている人は、それを思い浮かべて欲しい。
pythonbrewを使って例えばPython2.7をインストールした場合、ホームディレクトリ以下に全く新しいPythonインタプリタがインストールされる。
そのため、インストールの度に新しく構築するので時間がかかる。
しかしながら、操作がホームディレクトリ以下で完結するため、何かしらの理由から/usr/local/binなどにアクセスできないような環境でも問題ない。
今更感はあるが、例えばサクラのレンタルサーバなどではpythonbrewが使いやすいかも知れない。
virtualenvの特徴
pythonbrew(やperlbrew、rvm)と違い、インタプリタ自体は共有され、モジュールなどの環境だけがホームディレクトリ以下に作られる。
そのため、目的のインタプリタのバージョンが既にインストールされているなら、virtualenvで新しい環境を構築するのは一瞬出終わる(シンボリックリンクを張るだけ)
しかし、上で書いたように/usr/local/binなどにインタプリタをインストールできない場合は、virtualenvを利用することはできない。
結局どっちを使えばいいのか?
参考リンクの回答者は、普通はvirtualenvを使って、どうしてもvirtualenvだとダメな場合はpythonbrewを使う、ハイブリッド方式を示唆している。本人はそんなことしない(おそらくvirtualenvのみ使ってる)らしいが。