MySQL-python の Python 3 対応

去年10月に Python 3 の MySQL ドライバ事情 という記事で次のように書いていました。

多分デファクトスタンダードMySQLドライバなのですが、現状リリースされている 1.2.4 では Python 3 対応ができていません。 Fork の MySQL-for-Python3 が推奨されます。

最近 MySQL-python の方に Python 3 対応の準備的な Pull Request (古い構文を Python 2/3 両対応の構文に置き換える) がちらほらあり、やっぱり中途半端にメンテされてない Fork より本家に対応してもらわないとなぁということで、エイヤで Python 3 対応してしまって 少し大きめの Pull Request を投げました。

しかし、長年の実績がある本家といえども、個人プロジェクトで、1年に数回しかコミットされてない現状です。 一応、「いま転職直後で時間ないんだけど、できれば週末に見ておくよ」という感じのレスを貰ったのでしばらく待ってみますが、進展がなければ別名で PyPI に登録してしまうつもりです。

こういう、長年の実績があって利用させてもらっててもちろん尊敬している、特に個人プロジェクトが不活発になった時って、対応に困ります。 勝手に fork するのも感じ悪いけど、「forkのご挨拶」的なメールを悪印象与えないように書くのただでさえ面倒なのに英文で書くのは無理ゲーだし、相手がこちらのことを知らない状況で「Organization にして俺にもコミット権よこせ」なんて言うのはさらに無理ゲーです。

なにはともあれ、 Web 系で Python 3 に移行しようとしたときに最後のコアなミッシングパーツMySQL-python だったと思うので、 PyMySQL 使ってるけど性能とか考えると本当は MySQL-python の方がいいなーという人は github.com/methane/MySQLdb1 の python3 ブランチを試してみて、問題があったら報告お願いします。

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。