Pages

Friday, May 3, 2013

MacでPythonとMySQL関連のエラーの対処法

以下のようなエラーに出くわしたことがあるだろうか?
これは、Mac上でMySLQLとPythonを連携させようとするとたまに以下のようなエラーにである方がいるみたい。
ちなみに、私もその内の一人です。DjangoとMySQLまでは連携させられたのに、Sphinxを使った途端に、ドキュメントの作成がうまく行かなくなりました。


"Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so
  Reason: image not found", please check your spelling and sys.path

Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so
  Reason: image not found", please check your spelling and sys.path

とりあえずエラーを見るとlibmysqlclient.18.dylibが問題になっていることがわかる。
なので、まずそのファイルを探してみます。
locate libmysqlclient.18.dylib

すると以下の様な結果が帰って来ました。
/usr/local/mysql/lib/libmysqlclient.18.dylib

どうやら、これはLinux系とMacの違いなのではないかと思うのですが、
/usr/libから参照できるようになっているべきなようです。

なので、以下の様なソフトリンクを作成

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

これで、見事にエラーは消えました。

参考
http://stackoverflow.com/questions/6383310/python-mysqldb-library-not-loaded-libmysqlclient-18-dylib

No comments:

Post a Comment