Ошибка неправильной архитектуры Python MySQL - PullRequest
26 голосов
/ 17 июня 2010

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

Это ошибка при импорте 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 "<stdin>", line 1, in <module>
      File "MySQLdb/__init__.py", line 19, in <module>
        import _mysql
      File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 7, in <module>
      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 clean Переименован в Python / 2.5 / site-packages, чтобы он не мог его подцепить.

UPDATE

Удалил все и следовал инструкциям здесь: Django + MySQL в Mac OS 10.6.2 Snow Leopard установка с использованием macports.

Но в принципе все равно получаю ту же ошибку

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQLdb/__init__.py", line 19, in <module>
    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
>>> 

Ответы [ 12 ]

0 голосов
/ 17 марта 2012

Я встретил ту же проблему.

  • Моя ситуация: Mac OSX 10.6, Python 64-битный, mysql 32-битный и _mysql.so 32-битный.

  • Решение: удалить mysql (http://steveno.wordpress.com/2009/03/26/uninstall-mysql-on-mac-os-x/), и установить 64-битный mysql. Затем убедитесь, что mysql_config указывает на тот, который вы только что установили.

ВАЖНО:
удалитьвсе _mysql.so в каталоге MySQL-python-1.2.3 (это то, что вы скачиваете) или просто удалите весь каталог и сгенерируйте его заново из файла tar. Затем соберите и установите снова. Тогда _mysql.so будет 64бит. Теперь вы можете импортировать его. Если вы видите dyld: Library not loaded, то экспортируйте DYLD_LIBRARY_PATH=/usr/local/mysql/lib

0 голосов
/ 26 августа 2011

Эта проблема была решена для меня, выбрав правильную версию Python.Если вы установили с macports:

sudo port select python python26
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...