MySQL Python неправильная ошибка архитектуры

Я был в этом в течение некоторого времени и считал много сайтов на предмете. подозреваемый у меня есть ложь спама о порождении этой проблемы. Но где?

Это - ошибка, когда я импортирую 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
>>> 

26
задан Community 23 May 2017 в 10:32
поделиться

2 ответа

Когда интерпретатор говорит:

Вы установили 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 и скомпилируйте его.

2
ответ дан 28 November 2019 в 07:04
поделиться

Это выстрел в темноте - я не знаком с MACOSX - но я видел аналогичную проблему в Linux и смог решить ее только следующим образом:

  1. Удаление всех компонентов MySQLdb через диспетчер пакетов
  2. Выполнение поиска на низком уровне, чтобы найти любые оставшиеся каталоги и файлы, относящиеся к MySQLdb - если вы вручную установили / построили MySQLdb, вы, вероятно, найдете где-то ссылки на него, но, скорее всего, в каталоге site-packages - я сделал и просто удалил их - рекомендуемый подход, основанный на моем исследовании

Затем я попытался импортировать MySQLdb и убедился, что получил простую ошибку, что пакет не существует - по крайней мере, я знал, что MySQLdb удален на 100%

Затем я установить через диспетчер пакетов, если такая возможность существует, поскольку она будет на 100% совместима с вашей платформой и библиотеками. Компиляция и т. Д. - это здорово, но вам нужно проделать большую работу, чтобы убедиться, что у вас есть правильные клиентские библиотеки MySQL и т. Д., На которые можно ссылаться (на основе моего болезненного опыта)

Удачи.

В худшем случае ... вы можете использовать альтернативный вариант чистого python PyMySQL ( http://pypi.python.org/pypi/PyMySQL/0.2 ), но я должен признаться, что большинство людей рекомендуют MySQLdb

1
ответ дан 28 November 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: