MySQL-Pythonのインストールにはまった件

はまった事を思い出しながら書いておく。

iMac上にPythonの開発環境を構築していて、MySQLにアクセスするための「MySQL-Python」をインストールしようとしたら、派手にエラーが出てインストールできなかったの時の対処法メモ

インストール

pip install MySQL-Python

エラー

エラーはこんな感じ(全部乗っけるとアレなので一部のみ)

/usr/local/Cellar/mysql/5.5.10/include/my_config.h:326:1: warning: "SIZEOF_SIZE_T" redefined

In file included from /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:9,

                from pymemcompat.h:10,

                from _mysql.c:29:

/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pymacconfig.h:33:1: warning: this is the location of the previous definition

In file included from _mysql.c:36:

/usr/local/Cellar/mysql/5.5.10/include/my_config.h:419:1: warning: "HAVE_WCSCOLL" redefined

In file included from /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:8,

                from pymemcompat.h:10,

                from _mysql.c:29:

/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pyconfig.h:803:1: warning: this is the location of the previous definition

lipo: can't open input file: /var/folders/Ko/KoClnHHMHSanvYF+kBpsrE+++TI/-Tmp-//ccq4rw72.out (No such file or directory)

error: command 'gcc-4.2' failed with exit status 1

対処

結構理由がわからなくて、ソースからビルドしたり、homebrewを疑ってみたり、gccを疑ってみたり、mysql_configの設置場所とか疑ってみたりした結果、どうにかこうにか下記URLにたどり着いた。

どうやら、最近のiMacは、標準で64bitモードで起動するようになったのが原因らしい。
64bitモードでSnowLeopardが起動しているのに、MySQL-Pythonは32bitモードを前提としてインストールしようとするからこんなエラーが出るっぽい。。。

なので、ソースからビルドする際に、こんな感じで、64bitモードでbuildしてねと宣言したら、無事インストールする事ができました。

ARCHFLAGS='-arch x86_64' python setup.py build
ARCHFLAGS='-arch x86_64' python setup.py install

ちなみにMySQL-Pythonのソースはココから落としてきました。

余談

余談的な事を書くと、同時期に購入した Macbook Air ではこのようなエラーはでなかった、Macbook Air は 32bitモードで起動しているらしい。自分で64bitモードで起動させている人は同じような現象に遭遇するかもしれません。

以上終わり。