64bit Macでmysql-pythonを使おうとするとハマる
前からどーしても治らずに困ってたエラーが解決できたのでメモ。
ちなみに環境はこんな感じ。
症状
pip install mysql-python して、import MySQLdb しようとするとエラーに。
>>> import MySQLdb Traceback (most recent call last): File "<stdin>", line 1, in <module> File "MySQLdb/__init__.py", line 19, in <module> import _mysql ImportError: dlopen(/usr/local/Cellar/python/2.7.4/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-x86_64.egg/_mysql.so, 2): no suitable image found. Did find: /usr/local/Cellar/python/2.7.4/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-x86_64.egg/_mysql.so: mach-o, but wrong architecture
解決法
同じ症状の人が結構いて、stackoverflowでもいくつか質問が上がっていたのですがどれも解決に繋がらず。
Python mysqldb: Library not loaded: libmysqlclient.18.dylib - Stack Overflow
結果的に以下の方法を試したら解決できました。
MySQL-pythonのインストールに成功してました。: 通りすぎていく....
手順としては、
- mysql-pythonのソースをダウンロード
- site.cfgに以下を追加
mysql_config = /usr/local/mysql/bin/mysql_config
このたった1行で解決。あとはビルドしてインストールすればMySQLdbが使えるようになりました。