Python安装mysqlclient包报错解决
MacOS上问题解决
之前安装其实没有这么麻烦,用brew安装依赖会比MacPorts好很多在解决依赖方面。但是没办法老Mac版本brew不支持了,难受
mysqlclient 在v2.2.0后需要依赖pkg-config
,所以在执行pip
进行安装的时候一般都会报以下错误
Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
解决这个问题需要安装pkg-config
# brew
brew install pkg-config
# MacPorts
sudo port install pkgconfig
当然不光需要安装pkg-config
,还需要安装mysql-client
# brew
brew install mysql-client
# MacPorts直接安装完整mysql,其中包含mysqlclient需要的动态库等
sudo port install mysql
到这里还是会报上面的错误,还需要PKG_CONFIG_PATH
环境变量指明mysql的pkgconfig
export PKG_CONFIG_PATH="/usr/local/mysql/lib/pkgconfig"
最后再执行安装命令就顺利安装了
pip install mysqlclient
安装完后程序运行的时候可能还会报以下错误
Reason: tried: '/usr/lib/libmysqlclient.24.dylib' (no such file)
其实这个文件是存在的,所以我就想直接直接软连过去不就可以了
sudo ln -s /usr/local/mysql-8.4.2-macos14-x86_64/lib/libmysqlclient.24.dylib /usr/lib/libmysqlclient.24.dylib
结果却是是报没有权限,明明已经sudo执行了,MacOS的文件权限管理是越来越严格了
ln: /usr/lib/libmysqlclient.24.dylib: Operation not permitted
最后还是通过ChatGPT找到方法,添加DYLD_LIBRARY_PATH
环境变量
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
这样代码就可以正常运行了
参考链接
- https://github.com/PyMySQL/mysqlclient/discussions/624