Mac OS: mysqlclient ( MySQLdb ) 缺少libmysqlclient.18.dylib 報錯 image not found

mysqlclient ( MySQLdb ) 缺少libmysqlclient.18.dylib 報錯

報錯: image not found

mac 10.11.6 系統上,當 django 進行 makemigrations/migrate 的過程中。如果在 使用 python2 對應的 mysql-python 庫,或者使用 python3 對應的 mysqlclient 庫的時候,會出現報錯 image not found ,主要是因為libmysqlclient.18.dylib沒有加載。

  import _mysql
ImportError: dlopen(/usr/local/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: /usr/local/lib/libmysqlclient.18.dylib
  Referenced from: /usr/local/lib/python2.7/site-packages/_mysql.so
  Reason: image not found

image not found 解決辦法

解決辦法是找到 libmysqlclient.18.dylib,再用sudo ln -s命令軟連接到 /usr/local/lib下面去。(注意這里使用的是mac os 10.11.6,mysql 5.6)

  • 在終端中輸入

    mdfind libmysqlclient | grep .18.
    

    返回

    /usr/local/mysql-5.6.35-macos10.12-x86_64/lib/libmysqlclient.18.dylib
    

    拷貝這個文件地址

  • 使用軟連接

    sudo ln -s [剛才查到并拷貝的地址] /usr/local/lib/libmysqlclient.18.dylib
    

    比如可以填為:

    sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
    

    如果/usr/local/ 目錄下沒有 /lib/ 目錄的話,就新建一個該目錄。

    $ cd /usr/local/
    $ sudo mkdir lib
    

    至此就可以在 django 中使用 mysql-python(python2) 或者 mysqlclient (python3)遷移數據了。

以下為參考內容:

If encountered a problem with lacking of libmysqlclient.18.dylib:

  1. download mysql 5.6 from official link: https://dev.mysql.com/downloads/mysql/
  2. install it
  3. in terminal - mdfind libmysqlclient | grep .18.
  4. copy the output
  5. sudo ln -s [the output from previous command] /usr/local/lib/libmysqlclient.18.dylib
http://stackoverflow.com/questions/34536914/pythons-mysqldb-can-t-find-libmysqlclient-dylib-with-homebrewed-mysql
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容