当前位置:首页 > Python > 正文内容

macOS + Anaconda 环境下mysqlclient报错找不到动态链接库的问题

supersu1周前 (11-10)Python13

环境是mac+anconda创建的虚拟环境,flask项目,mysqlclient版本为2.1.1

运行时不报错,但是访问接口报错:

Traceback (most recent call last):
  File "/opt/anaconda3/envs/adp_v2_tp/lib/python3.8/site-packages/MySQLdb/__init__.py", line 18, in <module>
    from . import _mysql
ImportError: dlopen(/opt/anaconda3/envs/adp_v2_tp/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-darwin.so, 0x0002): Library not loaded: @rpath/libmysqlclient.24.dylib
  Referenced from: <B2C188AE-86C7-3836-85E6-93523CBDD3EE> /opt/anaconda3/envs/adp_v2_tp/lib/python3.8/site-packages/MySQLdb/_mysql.cpython-38-darwin.so
  Reason: tried: '/opt/anaconda3/envs/adp_v2_tp/bin/../lib/libmysqlclient.24.dylib' (no such file), '/opt/anaconda3/envs/adp_v2_tp/bin/../lib/libmysqlclient.24.dylib' (no such file)

错误原因为安装mysqlclient库时没有找到正确的动态链接库导致报错

解决方式:

确认 mysql-client 安装路径

brew info mysql-client

会输出类似的信息

/usr/local/opt/mysql-client

确认库文件存在

ls /usr/local/opt/mysql-client/lib/libmysqlclient*

在虚拟环境中运行下面几条命令:

export LDFLAGS="-L/usr/local/opt/mysql-client/lib"
export CPPFLAGS="-I/usr/local/opt/mysql-client/include"
export DYLD_LIBRARY_PATH="/usr/local/opt/mysql-client/lib:$DYLD_LIBRARY_PATH"

或者可以直接写入到~/.bash_profile

echo 'export LDFLAGS="-L/usr/local/opt/mysql-client/lib"' >> ~/.bash_profile
echo 'export CPPFLAGS="-I/usr/local/opt/mysql-client/include"' >> ~/.bash_profile
echo 'export DYLD_LIBRARY_PATH="/usr/local/opt/mysql-client/lib:$DYLD_LIBRARY_PATH"' >> ~/.bash_profile

然后卸载重新安装

pip uninstall -y mysqlclient
pip install --no-cache-dir mysqlclient

这样再运行就不会报错了

扫描二维码推送至手机访问。

版权声明:本文由SuperSu's Blog发布,如需转载请注明出处。

本文链接:https://blog.supersu.cc/?id=3

分享给朋友:
返回列表

没有更早的文章了...

没有最新的文章了...

“macOS + Anaconda 环境下mysqlclient报错找不到动态链接库的问题” 的相关文章