Python, Brew и MySQLdb - PullRequest
       24

Python, Brew и MySQLdb

7 голосов
/ 11 сентября 2011

Я запускаю python из установки brew. Я пошел, чтобы установить яйцо mysql_python с инструментами установки (стандартная установка в соответствии с инструкциями mysql_python), и оно было установлено в /usr/local/lib/python2.7/site-packages/. Обрабатываемые зависимости и т. Д.

Тогда я пошел, чтобы запустить консоль Python. Я могу импортировать другие вещи (например, импорт django; печать django.VERSION работает), но когда я импортирую MySQLdb, я получаю следующую ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg/_mysql.so
  Reason: image not found

Есть идеи? Большое спасибо.

1 Ответ

15 голосов
/ 11 сентября 2011

Пытаясь продублировать вашу ошибку, я сделал следующее (я полагаю, что, будучи домашним пивоваром, вы сделали то же самое).

1) brew install python Для установки Python 2.7
2) brew install mysql Для установки mysql в систему (необходим для различных драйверов)
3) Настроил mysql в соответствии с рекомендациями доморощенного
4) Скачал mysql_python и распаковал
5) Установлен mysql_python с использованием python setup.py install
6) Проверено в интерактивной сессии python, import _mysql

Пройдя через эти шаги на Льве, я не смог воспроизвести вашу ошибку. Теперь ... к отладке вашей проблемы.

Несколько вещей для проверки:
1) В вашем терминале, когда вы набираете which python, это указывает на вашу домашнюю установку?
2) Имейте в виду, что при homebrew пакеты сайтов не хранятся в подвале, они хранятся в /usr/local/lib/python2.7/site-packages. См. этот пост для получения дополнительной информации о том, почему. Мне не нужно было добавлять расположение пакетов сайта в мою переменную PATH, но вы можете попробовать.
3) Последнее, что я мог бы предложить - для того, чтобы заставить easy_install работать с питоном homebrew, мне пришлось добавить / usr / local / share / python в мой PATH.

EDIT
Перечитав сообщения об ошибках в основном после прокрутки вправо, я заметил, что не удалось загрузить библиотеку mysql. Быстрый поиск Google в этой библиотеке показал, что при установке mysql в OS X могут возникнуть трудности с установкой ссылок на нее. Попробуйте найти файл libmysqlclient.18.dylib и запишите его путь. После установки mysql через доморощенный рудник стоит: /usr/local/Cellar/mysql/5.5.14/lib. Общее исправление, которое я видел, исправляет переменную среды DYLD_LIBRARY_PATH. Для получения дополнительной информации, где я получил это проверить этот сайт. Используя мой путь в качестве примера, я бы добавил эту строку в мой .bash_profile

export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/Cellar/mysql/5.5.14/lib"

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

Наконец, если у вас еще нет данных sql, могу ли я предложить удалить mysql и установить его через homebrew? Теперь у меня ноль проблем с этой настройкой.

...