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
:
- download mysql 5.6 from official link: https://dev.mysql.com/downloads/mysql/
- install it
- in terminal -
mdfind libmysqlclient | grep .18.
- copy the output
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