dewijones92
dewijones92

Reputation: 1359

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

Suggestions please, thanks :)

pip list --outdated --format=freeze

Gives the following error:

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'

Upvotes: 8

Views: 1222

Answers (3)

tumbleweed
tumbleweed

Reputation: 303

I've done some analysis of this bug in in the Debian bugtracker.

It appears to be a race-condition triggered by the way Debian was packaging pip until recently. Dependencies were zipimported from wheels instead of vendored in the source tree, as upstream does.

This should already be resolved in Debian >= 12 (bookworm) and Ubuntu >= 22.04 (jammy).

An updated for pip in Debian 11 (bullseye) is in progress.

Upvotes: 2

ascoder
ascoder

Reputation: 615

I solved this problem updating pip, i updated from pip 20.3.4 to 21.3 so just type:

pip install pip -U

Seems like there is some bug in pip itself.

Screenshot of the resolution of the problem

Upvotes: 10

Steve Almond
Steve Almond

Reputation: 433

Not a fix, but a solution of sorts:

I 'fixed' this by updating every package.

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

I found OP's problem while logged-in as root and immediately after upgrading to Debian 11; dunno if that's significant.

Upvotes: -1

Related Questions