AttributeError: module 'html5lib.treebuilders.etree' has no attribute 'getETreeModule'

AttributeError: module 'html5lib.treebuilders.etree' has no attribute 'getETreeModule'

请多多指教,谢谢:)

pip list --outdated --format=freeze

出现以下错误:

ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 223, in _main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 175, in run
    packages = self.get_outdated(packages, options)
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 184, in get_outdated
    return [
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 184, in <listcomp>
    return [
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 237, in iter_packages_latest_infos
    for dist in map_multithread(latest_info, packages):
  File "/usr/lib/python3.9/multiprocessing/pool.py", line 870, in next
    raise value
  File "/usr/lib/python3.9/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/usr/lib/python3/dist-packages/pip/_internal/commands/list.py", line 214, in latest_info
    all_candidates = finder.find_all_candidates(dist.key)
  File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 825, in find_all_candidates
    package_links = self.process_project_url(
  File "/usr/lib/python3/dist-packages/pip/_internal/index/package_finder.py", line 793, in process_project_url
    page_links = list(parse_links(html_page))
  File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 324, in wrapper_wrapper
    return list(fn(page))
  File "/usr/lib/python3/dist-packages/pip/_internal/index/collector.py", line 335, in parse_links
    document = html5lib.parse(
  File "/usr/share/python-wheels/html5lib-1.1-py2.py3-none-any.whl/html5lib/html5parser.py", line 44, in parse
    tb = treebuilders.getTreeBuilder(treebuilder)
  File "/usr/share/python-wheels/html5lib-1.1-py2.py3-none-any.whl/html5lib/treebuilders/__init__.py", line 85, in getTreeBuilder
    return etree.getETreeModule(implementation, **kwargs).TreeBuilder
AttributeError: module 'html5lib.treebuilders.etree' has no attribute 'getETreeModule'

不是修复,而是某种解决方案:

我'fixed'通过更新每个包来做到这一点。

for f in `pip list | tail -n +3 | cut -d' ' -f1`; do
    pip install --update "$f";
done

我在以 root 身份登录并升级到 Debian 11 后立即发现了 OP 的问题;不知道这是否重要。

我更新 pip 解决了这个问题,我从 pip 20.3.4 更新到 21.3 所以只需输入:

pip install pip -U

似乎 pip 本身存在一些错误。

我在 in the Debian bugtracker 中对这个错误做了一些分析。

它似乎是由 Debian 直到最近打包 pip 的方式引发的 race-condition。依赖项是从 wheels zip 导入的,而不是像上游那样在源代码树中出售。

这应该已经在 Debian >= 12 (bookworm) 和 Ubuntu >= 22.04 (jammy) 中解决了。

Debian 11(靶心)中 pip 的更新是 in progress