カラクリスタ

「人並みの人生」なんて失かった人の個人ブログ

Cygwin環境にpythonbrewを導入した

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


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

0. 参考

http://www.ninxit.com/blog/2010/10/04/python%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B%E3%83%84%E3%83%BC%E3%83%AB%E3%80%81pythonbrew%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF/Python のバージョンを管理するツール、pythonbrew を作ってみた | NINXIT-BLOG

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 の辺り、

code:_ 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 の辺りの

code:_ 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でも試してみっかな。

FIXME