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

MacBook M1芯片Odoo17的lxml安装与AttributeError问题求助

解决M1 MacBook上Odoo 17 + Python 3.12的lxml依赖问题

问题根源

lxml 5.x版本移除了lxml.html.clean.defs属性,但Odoo 17的代码仍依赖该属性,导致触发AttributeError。同时M1芯片环境下安装旧版lxml需要提前配置编译依赖。


解决步骤

  1. 清理现有冲突依赖
    先卸载已安装的lxml相关包:

    pip3 uninstall -y lxml lxml_html_clean
    
  2. 安装M1编译依赖
    通过Homebrew安装lxml编译所需的系统库:

    brew install libxml2 libxslt
    
  3. 安装兼容版本的lxml(带html_clean)
    选择Odoo 17兼容的lxml 4.9.x版本(推荐4.9.3),同时解决zsh对[]的解析报错问题(用引号包裹包名):

    pip3 install "lxml[html_clean]==4.9.3" --config-settings "--global-option=build_ext" --config-settings "--global-option=-I$(brew --prefix libxml2)/include/libxml2" --config-settings "--global-option=-L$(brew --prefix libxml2)/lib" --config-settings "--global-option=-I$(brew --prefix libxslt)/include" --config-settings "--global-option=-L$(brew --prefix libxslt)/lib"
    
  4. 验证安装有效性
    进入Python交互环境检查依赖是否正常:

    import lxml.html.clean
    print(hasattr(lxml.html.clean, 'defs'))  # 输出True则表示依赖正常
    
  5. 重启Odoo项目
    重新启动项目,确认AttributeError报错消失。


额外注意事项

  • 不要随意注释requirements.txt中的版本约束,Odoo官方指定的版本均经过兼容性测试,M1环境下的安装问题优先通过配置编译依赖解决,而非升级依赖版本。
  • Python 3.12对部分旧库兼容性有限,Odoo 17官方推荐Python 3.10~3.11版本,若后续仍出现其他依赖问题,可通过pyenv切换到推荐版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:02:09