libmysqlclient を static link して MySQL-python を使う

ディストリのものではなくて Oracle からダウンロードした MySQL を使う場合など、 そのままでは libsqlclient_r.so が動的リンクできない場合の解決策の一つとして、 static link してしまうという方法があります。

MySQL-python の場合、 pip install を諦めてソースからインストールします。 パッケージを展開したら、 site.cfg を開いて、 static = Falsestatic = True に変更し、 mysql_config = <mysql_configのパス> を設定してから、 python setup.py install します。

なのですが、このままだと libmysqlclient を動的リンクしようとしてしまいます。 といことで修正する PR を出しました https://github.com/farcepest/MySQLdb1/pull/35/files

ちなみに、 MySQL-python は開発がゆっくりで (頻繁に機能追加するようなライブラリでもないですしね) 最新リリース版の 1.2.4 からの変更点はまだ distribute じゃなくて setuptools 使えるようにするというものと、 MySQL 5.5 からの 秒以下のタイムスタンプ対応だけなので、開発版を使うリスクは少ない (むしろ setuptools のために開発版使った方がいい) です。

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