在 MacBook M1 芯片的 Odor 17 项目上安装 lxml 时出现错误。首先,在安装requirements.txt时,出现错误。所以我注释掉了requirements.txt文件中的一些行。

...
#greenlet==1.1.2 ; python_version == '3.10'  # (Jammy)
#greenlet==2.0.2 ; python_version > '3.10'
...
#lxml==4.8.0 ; python_version <= '3.10'
#lxml==4.9.2 ; python_version > '3.10'
...
#reportlab==3.6.8 ; python_version <= '3.10'
#reportlab==3.6.12 ; python_version > '3.10'
...

安装所有软件包后,我尝试手动安装这些软件包。

我能够安装 greenlet 和 reportlab 软件包,但不能安装 lxml 软件包。

经过几次谷歌搜索后,我找到了这个链接:

根据此链接,问题是由于 lxml 版本造成的。所以我尝试安装lxml 4.8.0版本(pip3 install lxml==4.8.0)。但我收到另一个错误。然后我 ron pip3 install lxml 并安装了 lxml 5.2.1。

我的PyCharm运行Odoo项目时,出现这个错误:

Traceback (most recent call last):
  File "/Users/youstra/odoo-server/odoo-bin", line 5, in <module>
    import odoo
  File "/Users/youstra/odoo-server/odoo/__init__.py", line 134, in <module>
    from . import modules
  File "/Users/youstra/odoo-server/odoo/modules/__init__.py", line 8, in <module>
    from . import db, graph, loading, migration, module, registry, neutralize
  File "/Users/youstra/odoo-server/odoo/modules/graph.py", line 11, in <module>
    import odoo.tools as tools
  File "/Users/youstra/odoo-server/odoo/tools/__init__.py", line 24, in <module>
    from .mail import *
  File "/Users/youstra/odoo-server/odoo/tools/mail.py", line 19, in <module>
    from lxml.html import clean
  File "/Users/youstra/odoo-server/venv/lib/python3.12/site-packages/lxml/html/clean.py", line 18, in <module>
    raise ImportError(
ImportError: lxml.html.clean module is now a separate project lxml_html_clean.
Install lxml[html_clean] or lxml_html_clean directly.

当我尝试 pip3 install lxml[html_clean] 命令时,出现命令提示符 zsh: no matches found: lxml[html_clean]。

所以我尝试安装lxml_html_clean并且安装成功完成。

但安装完成后,我尝试运行 Odoo 项目,却收到此错误:

Traceback (most recent call last):
  File "/Users/youstra/odoo-server/odoo-bin", line 5, in <module>
    import odoo
  File "/Users/youstra/odoo-server/odoo/__init__.py", line 134, in <module>
    from . import modules
  File "/Users/youstra/odoo-server/odoo/modules/__init__.py", line 8, in <module>
    from . import db, graph, loading, migration, module, registry, neutralize
  File "/Users/youstra/odoo-server/odoo/modules/graph.py", line 11, in <module>
    import odoo.tools as tools
  File "/Users/youstra/odoo-server/odoo/tools/__init__.py", line 24, in <module>
    from .mail import *
  File "/Users/youstra/odoo-server/odoo/tools/mail.py", line 32, in <module>
    safe_attrs = clean.defs.safe_attrs | frozenset(
                 ^^^^^^^^^^
AttributeError: module 'lxml.html.clean' has no attribute 'defs'

我不知道我能做些什么来解决这个问题。

我是一名新的 Odoo 和 Python 开发人员。

非常感谢

  • Python版本:3.12
  • Odoo 版本:17
  • iOS版本:索诺玛

1

  • 请使用 Odoo v17 的 python 版本 3.11 并尝试使用虚拟环境安装软件包。


    – 


1 个回答
1

伟大的!

问题出在 python 版本上。我切换到python 3.10版本,问题解决了