2012-01-08 3 views
0

Я уже некоторое время пытаюсь заставить MySQLdb работать. Я в настоящее время получаю эту ошибку:Ошибка импорта 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 

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

+2

Вы уверены, что вы MySQL, установленных на вашем компьютере –

+0

У меня есть MAMP и я могу создавать базы данных с myPHPadmin без.? проблема. Я могу использовать Workbench Mysql без проблем. – davidfx

ответ

0

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

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

и 64bit MySQL

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

Вы можете проверить архитектуру вашего текущего MySQLdb является 32bit:

$ 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.so), а не 32 бит. (Hat-наконечник - я нашел this так вопрос, чтобы быть полезным

НТН, Дэн

Смежные вопросы