SSブログ

Pillow の Python3 porting に関する思い出をメモっておく [Python]

python のイメージライブラリの ML [Image-SIG] に Pillow の python3 port を master ブランチにマージしたというお知らせが来た。
http://mail.python.org/pipermail/image-sig/2013-January/007143.html
http://blog.aclark.net/2013/01/10/pillow-python-3/

そこで、ここまでのことを記録しておく

PyCon JP 2012 の LT で、「Python3 のポーティングの勧め」みたいな話をした。
ポイントとしては「2.7 と 3.3 なら同じソースで動くようにするのは割と楽、そして今は python3 への移植でヒーローになるチャンス」ということ。
そのときに Pillow を python3 で動くように頑張ってますという話をした。んでもって3日目のスプリントでも頑張ってた
http://nakagami.blog.so-net.ne.jp/2012-09-22
・・・のだが、スプリントにいた @shimizukawa さんに、「えっ、もうありますよ」という話を聞いた。その時のつぶやき↓
https://twitter.com/hajime_nakagami/status/247588526152105984
実は、少なからずショックを受けていた。
ただ、そのソースは python3.2 専用にバリバリ修正されていて、Python2.7/Python3.3 の両方で動くようにしようとして書き換えていた僕とは意図が異なっていた。
その時点で「あとちょっとで動きそう」という予感がしていたので、せっかくなので、じゃあ頑張るか、と継続して、月末くらいにはなんとなく動いてた。
きっと、事前に知っていたら、その仕事やってなかっただろう。

9月末くらいまでには、だいたい動くようになって、「さて、これからどうしよう。英語の ML にポストして長々と説明する程の英語力もなければ、完成度も高くない・・・」と思っていたら、ちょうど Pillow に python3 のサポートを入れようと思ってるんだけど、これをベースにすればいいっていうようなソースあんの?みたいな質問が Brian Crowell という人から ML に投げられた
http://mail.python.org/pipermail/image-sig/2012-October/007059.html

渡りに船と python2.7 と python3.3 で動くように try してるんだよ、と nakagami
http://mail.python.org/pipermail/image-sig/2012-October/007060.html

@shimizukawa さんが教えてくれたパッチを作ってる Christoph Gohlke さんも、これもあるよ的な発言
http://mail.python.org/pipermail/image-sig/2012-October/007061.html
辿ってみると、カリフォルニア大学アーバイ校でシステム管理をしてる人らしい

Brian さんからは python2.6 とか python3.2 で動かしたいけど動くの?という質問がきて、それ必要?もう 2.7+ と 3.3+ でいいんじゃない?と思ったのだが Debian で 2.6 と 3.2 だから、それは外せないんだよ、という話。
(うーん、そんなに簡単にできないんじゃないかなぁ。言うのは簡単だよ)
・・・と思っていたらしばらくすると Brian さんから Python 2.6/3.2 で動くようになったのでテストしてというメール。
http://mail.python.org/pipermail/image-sig/2012-October/007080.html
すげー。これは驚いた。C 拡張のあるコードで 2.6 と 3.2 が、そうも簡単に1つのソースで動かせるようになるとは思わなんだ。

This port is largely based on previous ports by Christoph Gohlke and
Hajime Nakagami. You can find both ports in my git tree as single
commits for comparison.
とのこと。そして今日に至る

Gohlke さんは、長いこと python3 対応を追っかけてたみたいでソースのこともよく理解してたし、参考にしてマージしたという Brian さんのソースは、よく書けてた。
それに比べると、僕は、Python2.7 と Python3.3 について、その場しのぎで動くようにしていっただけ。ひとつのソースで動くことを実証した、という意味しかなかったのではないかと思う。でも、まあ、できることを実証することは、それはそれで重要なのかな。

今回一番凄いなと思ったのは「Debian 信者の執念」だ。
コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント

トラックバック 0