カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

Cygwin環境にpythonbrewを導入した

概要: pythonbrewを使って複数のバージョンのpythonをインストール


三日前にperlbrewでperl-5.12.2をインストールして、 複数のバージョンのperlを切り替えられる喜びに目覚めてしまったので、 perlbrewのPython版というかperlbrewを参考にして作られたpythonbrewを導入してみました。

0. 参考

1. pythonbrewの導入

$ cd ~/tmp/
$ curl -LO -k http://github.com/utahta/pythonbrew/raw/master/pythonbrew-install

ここで、さっき落としてきたpythonbrewのインストーラーを修正します。

何時からそうなのかはわかりませんが、今のgithub.comが使ってる証明書関連の関係で、 curlhttpsを使ったgithubへのアクセスが、-kオプションを指定しないと失敗するので、 先ほど落としてきたpythonbrew-installの中で、curl使ってhttpsにアクセスしてる部分を修正します。

具体的には、pythonbrew-installのline 60の辺り、

STABLE_VERSION=`curl -sL https://github.com/utahta/pythonbrew/raw/master/stable-version.txt`

となっているところを、

STABLE_VERSION=`curl -sL -k https://github.com/utahta/pythonbrew/raw/master/stable-version.txt`

とします。

であとは、

$ chmod +x pythonbrew-install
$ ./pythonbrew-install

pythonbrewをインストール、で以前のperlbrewの時と同じく、

$ source ~/.pythonbrew/etc/bashrc

しておきます。まあこれはシェルの設定ファイルに書いておくといいでしょう。 またこの例ではbashrcになってますが、csh使ってる場合はcshrcを指定してください。

で、一旦端末を再起動します。

2. pythonbrewのちょっとした修正

本当は次でpythonbrew install 2.5.5したいところなんですが、 最初そのまま試したときには、なんかmake testの段階でtest_asynchatが途中でとまって先に進まないという事態に遭遇しました。

で、オプションでテストをスキップできるかと思いきや、 テストをスキップするオプションがなかったので、 とりあえずpythonbrewのファイルを修正してお茶を濁しました。

で、具体的な修正箇所は、~/.pythonbrew/scripts/pythonbrew/installer.pyのline 226の辺りの

        else:
            s.check_call("make")
            s.check_call("make test")

の部分を、

        else:
            s.check_call("make")
            # s.check_call("make test")

という感じでコメントアウトします。

これで修正は終わりです。

3. pythonbrewを使ってpython2.5.5をインストール

んで、これでpythonbrewを使う環境は整ったので、今度はpythonbrewを使ってpython-2.5.5をインストールします。

何故python-2.5.5なのか、というと、Google App Engine用の環境を整えたかったからです。

というわけで、後は端末で、

$ pythonbrew install 2.5.5 --configure='--with-threads=no'

でインストールします。ちなみにPythonのtar ballのREADME呼んだら、 情報は古かったんですが、Cygwinではthreadsを無効にしとけ、 みたいなことが書いてあったので、無効にしておきました。

それで、インストールが終わったら、あとは

$ pythonbrew switch 2.5.5

して端末を終了すれば、先ほどインストールしたpython-2.5.5が使えるようになります。

4. 以上で終了です。

というわけで、Cygwin環境でpythonbrewを導入してpython-2.5.5をインストールしたという話でした。

ちょっとした修正は必要だったけど、なんとかpythonの導入までできました。 まあこれでpython-2.5.5の環境はできたので、あとはGoogle App Engineのアプリケーションを書くのに集中できます。

まあでもGoogle App Engineのアプリケーションはアイディアがいくつかあるわりには一つも形になってないので、 いつ完成するかはサッパリ分かりません>< というかみんな立ち消えになってるしね > GAE Application

というわけで、pythonbrewの話でした。今度はrvmでも試してみっかな。