解决方法
方法一:使用pymysql
import pymysql
db = pymysql.connect("localhost", "username", "password", "database", charset='utf8')
方法二: 使用软链接
在终端中输入:
cd /usr/local/mysql/lib/
可以看到libmysqlclient.21.dylib文件,接下来添加软链接
sudo ln -s /usr/local/mysql/lib/libmysqlclient.21.dylib /usr/lib/libmysqlclient.21.dylib
这里Mac会报错 Operation not permitted,需要先关闭SIP(System Integrity Protection)
问题解析
在Python程序中导入MySQLdb报错:
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 968, in _find_and_load
File "<frozen importlib._bootstrap>", line 957, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 697, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/Users/xq/.conda/envs/py3.5/lib/python3.5/site-packages/MySQLdb/__init__.py", line 18, in <module>
import _mysql
ImportError: dlopen(/Users/xq/.conda/envs/py3.5/lib/python3.5/site-packages/_mysql.cpython-35m-darwin.so, 2): Library not loaded: @rpath/libmysqlclient.21.dylib
Referenced from: /Users/xq/.conda/envs/py3.5/lib/python3.5/site-packages/_mysql.cpython-35m-darwin.so
Reason: image not found
究其原因是:
Library not loaded: @rpath/libmysqlclient.21.dylib
参考链接:
Python mysqldb: Library not loaded: libmysqlclient.18.dylib:https://stackoverflow.com/questions/6383310/python-mysqldb-library-not-loaded-libmysqlclient-18-dylib/13421926#13421926