Установка MySQLdb Ошибка архитектуры Python - PullRequest
1 голос
/ 20 июля 2011

Я пытаюсь установить MySQLdb python и у меня возникают проблемы с его работой, потому что я получаю ошибку архитектуры.

>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build/bdist.macosx-10.6-x86_64/egg/MySQLdb/__init__.py", line 19, in <module>
  File "build/bdist.macosx-10.6-x86_64/egg/_mysql.py", line 7, in <module>
  File "build/bdist.macosx-10.6-x86_64/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/jkeesh/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-x86_64.egg-tmp/_mysql.so, 2): no suitable image found.  Did find:
    /Users/jkeesh/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-x86_64.egg-tmp/_mysql.so: mach-o, but wrong architecture

Это был распространенный вопрос, и я прочитал много, много источников, в том числе:

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

http://www.mechanicalgirl.com/view/installing-django-with-mysql-on-mac-os-x/

Django + MySQL в Mac OS 10.6.2 Snow Leopard

Установка MySQLdb в Mac OS X

и многие другие ссылки.

Похоже, что проблема заключается в 32-разрядном 64-разрядном несоответствии, но я не уверен, что такое правильная комбинация или каково именно несоответствие.

Я установил из pip, из портов Mac и собрал из источника. Я попытался установить для ARCHFLAGS значения i386 и x86_64.

Я попытался установить настройки VERSIONER_PYTHON_PREFER_32_BIT и VERSIONER_PYTHON_PREFER_64_BIT.

Я использую Mac OS X 10.6.6

У меня установлен mysql в /usr/local/mysql

$ file $(which ./mysql)
   ./mysql: Mach-O executable i386

У меня версия mysql 5.5.12

У меня 64 bit Python 2.6.6.

Моя системная архитектура:

>>> platform.platform()
'Darwin-10.6.0-i386-64bit'

$ file $(which python) 
   /opt/local/bin/python: Mach-O 64-bit executable x86_64

Если есть какие-либо ссылки, на которые вы можете указать мне, или предложения, чтобы попробовать, я буду очень признателен Я зашел в тупик и получаю ту же ошибку "неправильной архитектуры", что бы я ни пытался.

Ответы [ 3 ]

2 голосов
/ 01 сентября 2011

Попробуйте добавить это в .bashrc или .bash_profile:

PATH="/usr/local/mysql/bin:${PATH}"
export PATH
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
export VERSIONER_PYTHON_PREFER_64_BIT=no
export VERSIONER_PYTHON_PREFER_32_BIT=yes
1 голос
/ 20 июля 2011

Эта ссылка была полезной для меня, когда я столкнулся с этой проблемой:

http://learninglamp.wordpress.com/2010/02/21/mysqldb-python-mysql-and-os-x-a-match-made-in-satans-bum/

0 голосов
/ 21 июля 2011

Я решил свой собственный вопрос, так что, надеюсь, это может помочь людям с похожими проблемами.

Я полагаю, что у меня была 32-битная установка mysql.

Я удалил все версии mysql, которые у меня были

Я вернулся и установил mysql 5.1 из источника, но я думаю, что mysql 5.1 x86_64 bit dmg или двоичный файл также будет работать.

Я использовал эту команду make из этого поста http://hivelogic.com/articles/compiling-mysql-on-snow-leopard/

У меня были проблемы с разрешениями и, наконец, я заработал, используя

sudo mysqld_safe --skip-grant-tables &

Я установил MySQL-python 1.2.3c1 отсюда

http://pypi.python.org/pypi/MySQL-python/1.2.3c1

...