AttributeError:模块“lxml.html.clean”在 Odoo 17 上没有属性“defs”

问题描述 投票:0回答:1

在 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 软件包。

经过几次Google搜索,我找到了这个链接:https://www.odoo.com/forum/help-1/odoo-17-install-bug-attributeerror-module-lxml-html-clean-has-no -属性-defs-249918

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

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

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:未找到匹配项: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版本:索诺玛
lxml odoo-17
1个回答
0
投票

太棒了!

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

© www.soinside.com 2019 - 2024. All rights reserved.