2015-03-20 2 views
0

Мне нужно подключиться к базе данных MySQL, которая находится на моей локальной машине с помощью скрипта Python. Вот мои настройки:Ошибка MySQLdb с Python 2.7.6 на Yosemite

  • установлен (и использовали для разработки веб-приложений в течение нескольких месяцев) MySQL 5.6.22 (скачано .DMG из here)
  • Запуск предварительно установленный Python (2.7), прилагаемым Yosemite
  • Скачано: MySQL-python-1.2.4b4.tar.gz и установить через терминал, запустив python setup.py install в распакованной папке

Это выход я получил в конце установки:

Installed /Library/Python/2.7/site-packages/distribute-0.6.28-py2.7.egg 
Processing dependencies for distribute==0.6.28` 
Finished processing dependencies for distribute==0.6.28 
Processing MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg 
creating /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg 
Extracting MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg to /Library/Python/2.7/site-packages 
Adding MySQL-python 1.2.4b4 to easy-install.pth file 

Installed /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg 
Processing dependencies for MySQL-python==1.2.4b4 
Finished processing dependencies for MySQL-python==1.2.4b4 

Но при попытке подключения, мой пй скрипт дает мне эту ошибку:

ImportError: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib 
Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg/_mysql.so 
Reason: image not found 
('result', 256) 

Когда я

$ python 
>>> import MySQLdb 

я получаю ту же ошибку.

Любые идеи о том, как я могу это разбирать?

+0

Проверить это http://stackoverflow.com/questions/17599830/installing-mysql-python-on-mac – thavan

+0

@thavan У меня установлены инструменты для разработчиков и пип отказывается установить, что это дает мне эту ошибку каждый раз: 'Retrying (Retry (total = 4, connect = None, read = None, redirect = None)) после соединения, разбитого на 'ReadTimeoutError (" HTTPSConnectionPool (host =' pypi.python.org ', port = 443): Чтение (время ожидания = 15) ",) ':/simple/pip /' –

ответ

0

Во-первых, вы должны убедиться, что у вас есть libmysqlclient.18.dylib. На моем mac это путь: /opt/local/lib/mysql56/mysql/libmysqlclient.18.dylib. Если у вас его нет, вам может потребоваться его получить, установив mysql5-devel.

Если у вас есть динамическая библиотека, причина в том, что информация _mysql.so неверна. Вы можете использовать команду otool, чтобы проверить ее.

otool -L /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg/_mysql.so 

Он покажет, что путь, указанный этой командой, не является правильным путем для динамической библиотеки. Вы можете использовать следующую команду, чтобы исправить это.

sudo install_name_tool -change libmysqlclient.18.dylib {this is the correct path for mysql dynamic library} /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-intel.egg/_mysql.so 
Смежные вопросы