Python: MySQLdb и “Библиотека, не загруженная: libmysqlclient.16.dylib”

Установка...

При попытке настроить чистую Mac OS X 10,6 установок для разработки python/django и я не помнил сталкиваться с этим на 10,5.

После установки MySQL из установщика на mysql-5.5.8-osx10.6-x86_64.dmg Я работал

$ sudo pip install MySQL-python

и это, казалось, пошло гладко (вывод ниже)

Downloading/unpacking MySQL-python
  Downloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloaded
  Running setup.py egg_info for package MySQL-python
    warning: no files found matching 'MANIFEST'
    warning: no files found matching 'ChangeLog'
    warning: no files found matching 'GPL'
Installing collected packages: MySQL-python
  Running setup.py install for MySQL-python
    building '_mysql' extension
    gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -pipe -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/local/mysql/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _mysql.c -o build/temp.macosx-10.6-universal-2.6/_mysql.o -Os -g -fno-common -fno-strict-aliasing -arch x86_64
    In file included from _mysql.c:36:
    /usr/local/mysql/include/my_config.h:325:1: warning: "SIZEOF_SIZE_T" redefined
    In file included from /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:9,
                     from pymemcompat.h:10,
                     from _mysql.c:29:
    /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pymacconfig.h:33:1: warning: this is the location of the previous definition
    In file included from _mysql.c:36:
    /usr/local/mysql/include/my_config.h:419:1: warning: "HAVE_WCSCOLL" redefined
    In file included from /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:8,
                     from pymemcompat.h:10,
                     from _mysql.c:29:
    /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pyconfig.h:803:1: warning: this is the location of the previous definition
    gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup build/temp.macosx-10.6-universal-2.6/_mysql.o -L/usr/local/mysql/lib -lmysqlclient_r -lpthread -o build/lib.macosx-10.6-universal-2.6/_mysql.so -arch x86_64
    warning: no files found matching 'MANIFEST'
    warning: no files found matching 'ChangeLog'
    warning: no files found matching 'GPL'
Successfully installed MySQL-python
Cleaning up...

после этого я попробовал:

$ python -c "import MySQLdb"

и это гадило на мне с:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Library/Python/2.6/site-packages/MySQLdb/__init__.py", line 19, in <module>
    import _mysql
ImportError: dlopen(/Library/Python/2.6/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.16.dylib
  Referenced from: /Library/Python/2.6/site-packages/_mysql.so
  Reason: image not found

Таким образом по моему вопросу...

Что я делал неправильно?/, Что еще я должен сделать?

Поиск с помощью Google (и поиск здесь) для этого возвращают много результатов, получающих это сообщение об ошибке с Ruby не слишком многие с Python tho.

59
задан 30 December 2010 в 06:52

1 ответ

Для тех, которые как я, кто нуждается - или имеет - оба MySQLdb & PyMySQL установил (в моем случае, я должен был и установить, потому что я использую PyMySQL для соединения с моими локальными экземплярами MySQL и MySQLDb для удаленных/живых экземпляров):

Быть уверенными Вы используете правильную схему URI. Получить доступ к локальным экземплярам:

LOCAL_DATABASE_URI = 'mysql+pymysql://username:password@hostname/dbname'

и для живого:

REMOTE_DATABASE_URI = 'mysql+mysqldb://username:password@hostname/dbname'

Создание этого различия решило проблему для меня

0
ответ дан 1 November 2019 в 11:07

Другие вопросы по тегам:

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