You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Django脚本遇libmysqlclient版本不匹配错误,求解适配方案

Django + MySQL 导入错误解决方案

问题背景

运行Django脚本时触发以下导入错误:

ImportError: dlopen(/Users/whitebear/.local/share/virtualenvs/cinnamon-admin-mg9y4sUV/lib/python3.9/site-packages/MySQLdb/_mysql.cpython-39-darwin.so, 0x0002): Library not loaded: /opt/homebrew/opt/mysql/lib/libmysqlclient.22.dylib

系统仅存在/opt/homebrew/opt/mysql/lib/libmysqlclient.23.dylib,缺失报错中要求的.22版本库文件。

当前环境:

  • mysql --version:mysql Ver 8.3.0 for macos14.2 on arm64 (Homebrew)
  • python --version:Python 3.9.18

疑问:是否需要升级Python或降级MySQL?若正确,该选哪个版本?

解决方案

你的思路完全正确,问题核心是MySQLdb依赖的libmysqlclient版本与当前MySQL版本不匹配:MySQL 8.3.0自带.23版本库,而Python 3.9环境下安装的MySQLdb依赖旧版.22库,导致动态链接失败。

版本选择建议

1. 降级MySQL(推荐)

将MySQL降级到8.0.x系列(如8.0.36),该版本对应libmysqlclient.22.dylib,能完美适配Python 3.9环境的MySQLdb。执行命令:

brew install mysql@8.0
brew link --force mysql@8.0

重启终端后,用mysql --version验证版本切换结果。

2. 升级Python

将Python升级到3.10及以上版本(如3.10.13),之后重新创建虚拟环境并安装适配MySQL 8.3.0的mysqlclient包(MySQLdb的分支,兼容性更好)。

临时应急方案(不推荐长期使用)

若不想变更版本,可手动创建软链接临时修复:

ln -s /opt/homebrew/opt/mysql/lib/libmysqlclient.23.dylib /opt/homebrew/opt/mysql/lib/libmysqlclient.22.dylib

但此方法可能引发后续兼容性问题,仅作临时过渡用。

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 11:02:16