Ошибка импорта MySQLdb - PullRequest
       13

Ошибка импорта MySQLdb

0 голосов
/ 09 января 2012

Я уже некоторое время пытаюсь заставить MySQLdb работать.В настоящее время я получаю эту ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.7-intel/egg/MySQLdb/__init__.py", line 19, in <module>
  File "build/bdist.macosx-10.7-intel/egg/_mysql.py", line 7, in <module>
  File "build/bdist.macosx-10.7-intel/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/username/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so, 2): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib
  Referenced from: /Users/username/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so
  Reason: image not found

Кто-нибудь знает, что мне нужно сделать, чтобы исправить эти ошибки?

1 Ответ

0 голосов
/ 09 января 2012

Похоже, что MySQLdb скомпилировал себя для неправильной архитектуры.Я использую OSX Lion x86_64, и мне пришлось сделать это:

$ file $(which python) # so I can check my python is 64 bit

и 64-битный MySQL

$ file $(which mysqld) # so I can check my MySQL is 64 bit too

Вы можете проверить архитектуру вашего текущего MySQLdb 32-битный:

$ file /Users/username/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.7-intel.egg-tmp/_mysql.so

И тогда единственный способ заставить MySQLdb работать - это загрузить исходный код и скомпилировать его с

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

, что заставляет setup.py создать 64-битную библиотеку (_mysql.так) а не 32 бит.(Наконечник шляпы - я нашел этот , поэтому вопрос будет полезным.

HTH, Дэн

...