Pythonのバージョンを管理するツール、pythonbrewを作ってみた
Perlのperlbrewってツールが凄く使いやすくて羨ましかったので、Pythonで使えるpythonbrewってツールを作ってみました。
perlbrew?
perlbrewとはPerlをバージョン毎にインストールして、それらをswitchして使ったりできるツールのこと。
既存の環境を壊さずに最新のPerlを簡単に試すことができます。
PerlからCPANモジュールまでホームディレクトリ以下に全部インストールしてくれるので、自分専用のPerl環境を構築することができます。
perlbrewの作者の劉康民さんは、本当にすばらしいアイデアの持ち主。
pythonbrewとは
基本的にperlbrewをパクったと同じ思想なツール。
Pythonインタプリタのインストールから、それらの管理まで面倒をみてくれます。
例えば、一からPython2.6.6、2.5.5、2.4.6の環境を構築したいなーってとき、
pythonbrewを使えばたった数コマンドでいとも簡単に実現できます。
コマンドで示すと以下の通り。
# 2.6.6をインストール&2.6.6環境に変更 $ pythonbrew install 2.6.6 $ pythonbrew switch 2.6.6 # 2.5.5をインストール&2.5.5環境に変更 $ pythonbrew install 2.5.5 $ pythonbrew switch 2.5.5 # 2.4.6をインストール&2.4.6環境に変更 $ pythonbrew install 2.4.6 $ pythonbrew switch 2.4.6 # 2.5.5環境に変える $ pythonbrew switch 2.5.5 # 2.6.6環境に変える $ pythonbrew switch 2.6.6
easy_installやpipも一緒にインストールするので、初っぱなの環境構築するときとかに地味に便利です。
モダンなPythonの開発環境の構築方法さんでいうところの「インストール」〜「easy_installのインストール」までを補うツールって立ち位置な感じ。
virtualenvとの違いは?
一番の違いは、Pythonインタプリタのインストールから、それらの管理まで面倒をみる点です。
virtualenvは、Pythonインタプリタが存在することを前提としています。
pythonbrew と virtualenv の共存といったら烏滸がましいですが、
例えば、pythonbrew で一通りPythonインタプリタをインストールしてから、
virtualenvで環境を構築すると、少し楽・・・かもしれません。
コマンドで示すとこんな感じ。
# 2.6.6 と 2.5.5 をインストール $ pythonbrew install 2.6.6 $ pythonbrew install 2.5.5 # 2.6.6 を標準の環境に設定。 $ pythonbrew switch 2.6.6 $ pip install virtualenv # virtualenv を使って、2.6.6 環境のプロジェクトを作成 $ virtualenv hoge2.6.6-proj # virtualenv を使って、2.5.5 環境のプロジェクトを作成 $ virtualenv -p ~/.pythonbrew/pythons/Python-2.5.5/bin/python hoge2.5.5-proj
1度、virtualenvを使い出したらそれで完結できるので、pythonbrew の出番は劇的に減りそうです。
使い方
インストール〜実行までを、コマンドを使って説明します。
まず、pythonbrew をインストールするために以下のコマンドを実行します。
$ curl -kLO https://github.com/utahta/pythonbrew/raw/master/pythonbrew-install $ chmod +x pythonbrew-install $ ./pythonbrew-install
これで、~/.pythonbrew に pythonbrew 一式がインストールされます。
インストール先を変えたい場合は、環境変数 PYTHONBREW_ROOT にパスを設定してから、./pythonbrew-installを実行します。
$ export PYTHONBREW_ROOT=/path/to/pythonbrew $ ./pythonbrew-install
インストールが成功すると、パス設定用のファイルが作成されるので、画面の指示通りそれらを読み込むよう.bashrcや.cshrcに設定を加えます。
$ vi ~/.bashrc source $HOME/.pythonbrew/etc/bashrc
保存したら設定を一度読み直します。
$ source ~/.bashrc
パスが通っているか確認します。
$ which pythonbrew ~/.pythonbrew/bin/pythonbrew
ここまでで、インストールは完了です。
続いて、pythonbrewを使ってPython-2.6.6をインストールします。
$ pythonbrew install 2.6.6
完了したら、インストールしたPythonインタプリタを有効にする為に、switch します。
$ pythonbrew switch 2.6.6 Switched to Python-2.6.6
これで、インストールしたPythonが有効になります。
$ python Python 2.6.6 (r266:84292, Oct 4 2010, 00:38:36) [GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
後は、ご自由にどうぞ!
別バージョンのPythonインタプリタを使うときも、やることは同じです。
$ pythonbrew install 3.1.2 $ pythonbrew switch 3.1.2 Switched to Python-3.1.2
これで、Python-2.6.6 と Python-3.1.2 環境のできあがり!
Macユーザで
MacPorts を使ってるひとは、python_select てのもあります!
更新履歴
2010.11.13 バージョン 0.5 用に加筆修正しました。
2010.12.3 gitのhttps化に伴い、curlコマンドのオプションを修正しました。