Skip to content

Cannot import 'setuptools.build_meta' when installing gevent on Ubuntu 24.04 #93

Description

@nmarotte

Criticality

Low

What happened?

When installing gevent as part of the requirements of Odoo, odev fails to install them due to this error

/home/odoo/odev/virtualenvs/master/bin/python -m pip install --no-build-isolation gevent==21.8.0 --no-color
Collecting gevent==21.8.0
  Using cached gevent-21.8.0.tar.gz (6.2 MB)
  Preparing metadata (pyproject.toml) ... done
ERROR: Exception:
Traceback (most recent call last):
pip._vendor.pyproject_hooks._impl.BackendUnavailable: Cannot import 'setuptools.build_meta'

(full traceback below)

I believe this could be due to the strict requirements for setuptools version

setuptools>=58.0.0, <59.0.0; python_version >= '3.8' and python_version < '3.12'

After uninstalling setuptools and installing it again without any version requirements (it version version ~80 while less than 60 in the requirements) we were able to install gevent

Relevant log output

/home/odoo/odev/virtualenvs/master/bin/python -m pip install --no-build-isolation gevent==21.8.0 --no-color
Collecting gevent==21.8.0
  Using cached gevent-21.8.0.tar.gz (6.2 MB)
  Preparing metadata (pyproject.toml) ... done
ERROR: Exception:
Traceback (most recent call last):
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 107, in _run_wrapper
    status = _inner_run()
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 98, in _inner_run
    return self.run(options, args)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 71, in wrapper
    return func(self, options, args)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 393, in run
    requirement_set = resolver.resolve(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 98, in resolve
    result = self._result = resolver.resolve(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 596, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 429, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py", line 150, in _add_to_criteria
    if not criterion.candidates:
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_vendor/resolvelib/structs.py", line 194, in __bool__
    return bool(self._sequence)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 165, in __bool__
    self._bool = any(self)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 149, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 39, in _iter_built
    candidate = func()
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 180, in _make_candidate_from_link
    base: BaseCandidate | None = self._make_base_candidate_from_link(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 226, in _make_base_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 309, in __init__
    super().__init__(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 162, in __init__
    self.dist = self._prepare()
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 239, in _prepare
    dist = self._prepare_distribution()
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 320, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 537, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 652, in _prepare_linked_requirement
    dist = _get_prepared_distribution(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 77, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/distributions/sdist.py", line 72, in prepare_distribution_metadata
    self.req.prepare_metadata()
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/req/req_install.py", line 578, in prepare_metadata
    self.metadata_directory = generate_metadata(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/operations/build/metadata.py", line 34, in generate_metadata
    distinfo_dir = backend.prepare_metadata_for_build_wheel(metadata_dir)
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_internal/utils/misc.py", line 715, in prepare_metadata_for_build_wheel
    return super().prepare_metadata_for_build_wheel(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 224, in prepare_metadata_for_build_wheel
    return self._call_hook(
  File "/home/odoo/odev/virtualenvs/master/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_impl.py", line 402, in _call_hook
    raise BackendUnavailable(
pip._vendor.pyproject_hooks._impl.BackendUnavailable: Cannot import 'setuptools.build_meta'
(failed reverse-i-search)`is-dev': /home/odoo/odev/virtualenvs/master/bin/python -m pip install --no-build-^Colation gevent==21.8.0 --no-color

What is expected?

change the requirements of setuptools to be less strict or to use a more recent version of it

Possible implementation

No response

Additional information

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions