【Python MySQLdb】Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib解決辦法

使用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

相關文章
相關標籤/搜索