Mac M1环境Odoo16启动报错:_exsltDateXpathCtxtRegister符号未找到
解决Odoo启动时lxml的ImportError问题
这个错误源于lxml依赖的libexslt库版本不匹配或安装异常,和PostgreSQL(psql)无关,以下是具体修复步骤:
1. 卸载当前lxml
先激活你的虚拟环境(如果使用了虚拟环境),执行卸载命令:
pip uninstall -y lxml
2. 安装系统依赖库
针对Mac系统,用Homebrew安装libxml2和libexslt:
brew install libxml2 libexslt
3. 指定系统库路径重新安装lxml
通过环境变量指定系统安装的libxml2和libexslt路径,让pip编译lxml时调用这些系统库:
- 若你的Homebrew安装路径为
/usr/local(Intel芯片Mac):
export LDFLAGS="-L/usr/local/opt/libxml2/lib -L/usr/local/opt/libexslt/lib" export CPPFLAGS="-I/usr/local/opt/libxml2/include -I/usr/local/opt/libexslt/include" pip install lxml
- 若你的Homebrew安装路径为
/opt/homebrew(M系列芯片Mac):
export LDFLAGS="-L/opt/homebrew/opt/libxml2/lib -L/opt/homebrew/opt/libexslt/lib" export CPPFLAGS="-I/opt/homebrew/opt/libxml2/include -I/opt/homebrew/opt/libexslt/include" pip install lxml
4. 验证修复
重新启动Odoo:
python3 odoo-bin --addons-path addons -r odoo -w odoo
如果问题仍存在,可尝试安装与你的Odoo版本兼容的lxml特定版本(例如Odoo 14对应lxml 4.6.x,Odoo 15对应lxml 4.8.x):
pip install lxml==4.6.3
安装完成后再次启动Odoo测试。
内容的提问来源于stack exchange,提问作者Atanas Hristov Turlakov
相关产品推荐
相关产品推荐

