2010-12-01 21 views
1

У меня есть MYSQL & MYSQLdb установлен с Python 2.6 & Django 1.2.3. Я могу открыть & log to to mysql без проблем, но он не взаимодействует с python, когда я проверяю, правильно ли он работает в интерпретаторе python. Это тзд ошибки я получаю, когда я вызываю его в интерпретаторе ....python mysqldb проблема сопряжения с python 2.6 или или mysql

import MySQLdb 

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): Library not loaded: /opt/local/lib/mysql5/mysql/libmysqlclient_r.15.dylib 
    Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/_mysql.so 
    Reason: image not found 
+0

Какая ОС вы используете? – snarkyname77 2010-12-01 01:18:14

+0

Hey Lewisblackfan Я бегу Leopard на Mac .... – demet8 2010-12-02 13:06:50

ответ

0

Похоже, вы используете установку Python MacPorts на MacOS X. Если вы правильно используете MacPorts для обновления, вы не должны столкнуться с такими проблемами. Во-первых, убедитесь, что установка уточненный:

$ sudo port selfupdate 
$ sudo port outdated # lists outdated ports 
$ sudo port -u upgrade outdated # upgrade outdated ports and remove old versions 

Затем, если вы все еще есть проблемы, убедитесь, что у вас нет проблемы разрешения файла где-нибудь. Это должно выглядеть примерно так:

$ ls -l /opt/local/lib/mysql5/mysql 
total 93824 
-rw-r--r-- 2 root admin  1824 Nov 22 16:10 libdbug.a 
-rw-r--r-- 2 root admin 161176 Nov 22 16:10 libheap.a 
-rw-r--r-- 2 root admin 900552 Nov 22 16:10 libmyisam.a 
-rw-r--r-- 2 root admin 136472 Nov 22 16:10 libmyisammrg.a 
-rwxr-xr-x 2 root admin 2871400 Nov 22 16:10 libmysqlclient.16.dylib* 
-rw-r--r-- 2 root admin 3224032 Nov 22 16:10 libmysqlclient.a 
lrwxr-xr-x 1 root admin  23 Nov 22 16:10 [email protected] -> libmysqlclient.16.dylib 
-rwxr-xr-x 2 root admin  1028 Nov 22 16:10 libmysqlclient.la* 
-rwxr-xr-x 2 root admin 2891208 Nov 22 16:10 libmysqlclient_r.16.dylib* 
-rw-r--r-- 2 root admin 3248504 Nov 22 16:10 libmysqlclient_r.a 
lrwxr-xr-x 1 root admin  25 Nov 22 16:10 [email protected] -> libmysqlclient_r.16.dylib 
-rwxr-xr-x 2 root admin  1040 Nov 22 16:10 libmysqlclient_r.la* 
-rw-r--r-- 2 root admin 25939344 Nov 22 16:10 libmysqld.a 
-rw-r--r-- 2 root admin 2643984 Nov 22 16:10 libmystrings.a 
-rw-r--r-- 2 root admin 667720 Nov 22 16:10 libmysys.a 
-rwxr-xr-x 2 root admin 2039856 Nov 22 16:10 libndbclient.3.dylib* 
-rw-r--r-- 2 root admin 3221192 Nov 22 16:10 libndbclient.a 
lrwxr-xr-x 1 root admin  20 Nov 22 16:10 [email protected] -> libndbclient.3.dylib 
-rwxr-xr-x 2 root admin  976 Nov 22 16:10 libndbclient.la* 
-rw-r--r-- 2 root admin  29568 Nov 22 16:10 libvio.a 
drwxr-xr-x 2 root admin  612 Nov 22 16:10 plugin/ 

Также убедитесь, что вы не имеете несоответствие архитектуры:

$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/ 
$ file _mysql.so 
_mysql.so: Mach-O universal binary with 2 architectures 
_mysql.so (for architecture x86_64): Mach-O 64-bit bundle x86_64 
_mysql.so (for architecture i386): Mach-O bundle i386 
$ otool -L _mysql.so # this shows which MySQL client lib the Python DB adapter is dynamically linked to 
_mysql.so: 
    /opt/local/lib/mysql5/mysql/libmysqlclient_r.16.dylib (compatibility version 17.0.0, current version 17.0.0) 
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0) 
    /opt/local/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8) 
    /opt/local/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8) 
$ cd /opt/local/lib/mysql5/mysql/ 
$ file libmysqlclient_r.16.dylib 
libmysqlclient_r.16.dylib: Mach-O universal binary with 2 architectures 
libmysqlclient_r.16.dylib (for architecture i386): Mach-O dynamically linked shared library i386 
libmysqlclient_r.16.dylib (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64 

И, конечно, убедитесь, что вы на самом деле с помощью MacPorts Python:

$ /opt/local/bin/python2.6 -V 
Python 2.6.6 
$ /opt/local/bin/python2.6 -c 'import MySQLdb; print(MySQLdb._mysql.__file__)' 
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated 
    from sets import ImmutableSet 
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/_mysql.so 
0

Python не может найти файл «libmysqlclient_r.15.dylib». Возможно, вы имели несогласованные версии MySQL и MYSQLdb, или этот файл не находится в стандартном месте. Попробуйте переустановить MYSQLdb.

Смежные вопросы