ZMySQLDAをbuildoutで追加する

ZopeからMySQLを扱う実験をするため、ZMySQLDAをbuildoutで追加しました。

PythonMySQL-pythonをインストールする

MySQL-pythonをダウンロード。ものはここにあります。最新は1.2.3。
コードを展開してsite.cfgのmysql_configの位置を編集。これは環境に応じて適当に。

mysql_config = /usr/local/mysql/bin/mysql_config

それでもってインストール。Zopeを動作させているpythonを使って実施します。

$ /usr/bin/python setup.py build
# /usr/bin/python setup.py insatll

MySQLのクライアントライブラリがpythonから見えるようにチェック。ちゃんとインストールできたかどうかはコマンドラインで確認できます。

$ /usr/bin/python
Python 2.4.4 (#1, Jan 10 2007, 01:25:01) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import _mysql
>>>

ZMySQLDAをインストール

ZMySQLDAは結構古いので、buildoutには対応していません*1。なのでこんな手順で。

buildout.cfgのurlsへZMySQLDAのソースを書く
urls = http://www.zope.org/Members/adustman/Products/ZMySQLDA/2.0.8/ZMySQLDA-2.0.8.tar.gz

ここで一旦buildoutを実行。

$ bin/buildout
レシピを追加してインストール

上記でZMySQLDAはlib/python/Products/ZMySQLDAへダウンロードされるんだけど、Zopeには認識されません。でもとても偉いひとがレシピを書いてくれているのでそれを通じてインストールできます。

http://pypi.python.org/pypi/cns.recipe.zmysqlda/

ありがたいなあ。
まずbuildout.cfgの[buildout]にzmysqldaを追加。

[buildout]
parts =
    zope2
    productdistros
    instance
    zopepy
    zmysqlda  ← これ

次にbuildout.cfgの最後にzmysqldaを追加。

[zmysqlda]
recipe = cns.recipe.zmysqlda
target = ${buildout:directory}/products

ここまで書いたら bin/buildout を実行。
これでプロダクトインストールできました。

*1:と思う