Я был в этом в течение некоторого времени и считал много сайтов на предмете. подозреваемый у меня есть ложь спама о порождении этой проблемы. Но где?
Это - ошибка, когда я импортирую MySQLdb в Python:
>>> import MySQLdb
/Library/Python/2.6/site-packages/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg/_mysql.py:3: UserWarning: Module _mysql was already imported from /Library/Python/2.6/site-packages/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg/_mysql.pyc, but /Users/phoebebr/Downloads/MySQL-python-1.2.3c1 is being added to sys.path
Traceback (most recent call last):
File "", line 1, in
File "MySQLdb/__init__.py", line 19, in
import _mysql
File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 7, in
File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/phoebebr/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): no suitable image found. Did find:
/Users/phoebebr/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so: mach-o, but wrong architecture
Я пробую за 64 бита, так проверенные здесь:
file $(which python)
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386): Mach-O executable i386
/usr/bin/python (for architecture ppc7400): Mach-O executable ppc
file $(which mysql)
/usr/local/mysql/bin/mysql: Mach-O 64-bit executable x86_64
Установили мою версию по умолчанию Python к 2,6
python
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Испытанный каталог сборки удаления и Python setup.py чистый Переименованный Python/2.5/site-packages, таким образом, это не могло попытаться взять это.
Удаленный все и следовал инструкциям здесь: Django + MySQL на Mac OS 10.6.2 установок Snow Leopard с помощью macports.
Но в основном тихий получают ту же ошибку
Traceback (most recent call last):
File "", line 1, in
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQLdb/__init__.py", line 19, in
import _mysql
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/_mysql.so, 2): no suitable image found. Did find:
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/_mysql.so: mach-o, but wrong architecture
>>>
Когда интерпретатор говорит:
Вы установили MySQL_python-1.2.3c1 в /Library/Python/2.6/site-packages но вы добавляете в sys.path другую версию в /users/phoebebr/Downloads. Когда я пытаюсь импортировать MySQLdb из второго каталога, я обнаружил, что _mysql.so принадлежит другой архитектуре.
SO, похоже, что вы закончили с неправильной версией MySQLdb. Удалите /Users/phoebebr/.python-eggs/MySQL_python-1.2.3c1-py2.6-macosx-10.6-universal.egg-tmp и /Users/phoebebr/Downloads/MySQL-python-1.2.3c1. Проверьте еще раз, работает ли версия в /library работает. Если нет, загрузите двоичный файл для MacOS. В крайнем случае, скачайте исходный код MySQL-python и скомпилируйте его.
Это выстрел в темноте - я не знаком с MACOSX - но я видел аналогичную проблему в Linux и смог решить ее только следующим образом:
Затем я попытался импортировать MySQLdb и убедился, что получил простую ошибку, что пакет не существует - по крайней мере, я знал, что MySQLdb удален на 100%
Затем я установить через диспетчер пакетов, если такая возможность существует, поскольку она будет на 100% совместима с вашей платформой и библиотеками. Компиляция и т. Д. - это здорово, но вам нужно проделать большую работу, чтобы убедиться, что у вас есть правильные клиентские библиотеки MySQL и т. Д., На которые можно ссылаться (на основе моего болезненного опыта)
Удачи.
В худшем случае ... вы можете использовать альтернативный вариант чистого python PyMySQL ( http://pypi.python.org/pypi/PyMySQL/0.2 ), но я должен признаться, что большинство людей рекомендуют MySQLdb