Trying to set up a clean Mac os X 10.6 install to develop python/django and I didn't remember running into this on 10.5.
After installing MySQL from the installer on mysql-5.5.8-osx10.6-x86_64.dmg
I ran
$ sudo pip install MySQL-python
and it seemed to go smoothly (output below)
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...
after this I tried:
$ python -c "import MySQLdb"
and it crapped out on me with:
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
What did I do wrong?/What else do I need to do?
Googling (and searching here) for this returns a lot of results getting this error message with Ruby not too many with Python tho.
Solution: Fix ImportError: No module named MySQLdb It means, Python needs a module to interface with MySQL database and that modules does not seems to be present in the system. All you need to do is, just install MySQL-Python module and the script should work without any problem.
Just set the DYLD_LIBRARY_PATH
after running pip install
or easy_install
:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
Should do the job assuming your MySQL installation lives under /usr/local/mysql
.
_mysql.so
refers to libmysqlclient.16.dylib
. That is, the shared library that serves as the bridge between Python and the MySQL client library, _mysql.so
, refers to the dynamic library for the MySQL client library, and that library cannot be loaded for some reason.
Questions you need to answer:
libmysqlclient.16.dylib
anywhere on your system? If not, you need to install
the MySQL client software.DYLD_LIBRARY_PATH
setting? If not,
try adding it.libmysqlclient.16.dylib
file is not corrupt. My
copy, installed in /opt/local/lib/mysql5/mysql/libmysqlclient.16.dylib
, courtesy of
MacPorts, has MD5 signature c79ee91af08057dfc269ee212915801a
and is 1,462,376 bytes in size. What does your copy look like?If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With