MacOS M3 Pro运行sentry devserver遇xmlsec版本不匹配报错如何解决?
解决xmlsec与lxml libxml2版本不匹配问题(MacOS M3 Pro)
确认依赖架构一致性
M3 Pro为arm64架构,大概率是部分依赖混用x86_64版本导致版本不匹配。执行以下命令排查:- 查看Python架构:
file $(which python) - 查看lxml编译架构:先在Python交互环境中执行
import lxml; print(lxml.__file__),拿到路径后执行file 替换为刚才输出的路径,用同样方式检查xmlsec的架构。
- 查看Python架构:
从源码重新编译安装依赖
先卸载现有包:pip uninstall -y lxml xmlsec
如果是用Homebrew安装的libxml2,默认路径为/opt/homebrew/opt/libxml2,执行以下命令强制从源码编译安装,确保依赖统一调用系统的libxml2:
CFLAGS="-I/opt/homebrew/opt/libxml2/include" LDFLAGS="-L/opt/homebrew/opt/libxml2/lib" pip install lxml==4.6.5 xmlsec==1.3.14 --no-binary :all:
- 验证版本匹配
安装完成后,在Python交互环境中运行以下代码,确认两个版本完全一致:
import lxml.etree import xmlsec print(lxml.etree.LIBXML_VERSION) print(xmlsec.libxml2_version)
正常输出都应为2.12.7。
- 清理缓存重启服务
清理Python缓存文件:find . -name "__pycache__" -exec rm -rf {} +
之后重新运行sentry devserver --workers
内容的提问来源于stack exchange,提问作者zuanmei wu
相关产品推荐
相关产品推荐

