使用MySQLdb遇到如下错误python
ImportError: dlopen(/Users/jackey/Documents/Xiaomi/Code/wda_python/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib Referenced from: /Users/jackey/Documents/Xiaomi/Code/wda_python/lib/python2.7/site-packages/_mysql.so Reason: image not found
缘由是_mysql.so找不到mysql
/usr/local/mysql/lib/libmysqlclient.20.dylib
咱们看下_mysql.so是怎么找的sql
(wda_python) bash-3.2$ otool -L /Users/jackey/Documents/Xiaomi/Code/wda_python/lib/python2.7/site-packages/_mysql.so /Users/jackey/Documents/Xiaomi/Code/wda_python/lib/python2.7/site-packages/_mysql.so: /usr/local/mysql/lib/libmysqlclient.20.dylib (compatibility version 20.0.0, current version 20.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5) (wda_python) bash-3.2$
20.dylib是有路径的, 若是这里没有路径须要添加路径, 使用下面用到的修改链接的方法bash
咱们看下/usr/local/mysql/lib目录下面的内容python2.7
发现目录中是libmysqlclient.21.dylibspa
咱们修改下_mysql.so的链接到21.dylibcode
(wda_python) bash-3.2$ sudo install_name_tool -change /usr/local/mysql/lib/libmysqlclient.20.dylib /usr/local/mysql/lib/libmysqlclient.21.dylib /Users/jackey/Documents/Xiaomi/Code/wda_python/lib/python2.7/site-packages/_mysql.so
Password: (wda_python) bash-3.2$
再试下就OK了blog