I’m trying to install pgadmin4 on Archlinux using pip inside a virtual environment pip install pgadmin4
. Versions 8.11 and above (current is 8.14) fail and raise InvalidVersion exception:
ERROR: Exception:
...
pip._vendor.packaging.version.InvalidVersion: Invalid version: '6.12.4-arch1-1'
I tried downgrading setuptools to version 65, but in vain.
Version 8.10 is working fine pip install pgadmin4==8.10
(with setuptools-70.3.0 installed as a dependency) .
If I understood well, Python ecosystem recently made some version formatting guidelines mandatory and “refuses to work with” any software that do not comply with them. So Archlinux version format ‘6.12.4-arch1-1’ should be changed to comply with those guidelines in order for pgadmin4 to be installed … Please correct me if I’m wrong.
Any clues on how to install the latest version of pgadmin4?
PS: If this can help, here is my full stack trace:
ERROR: Exception:
Traceback (most recent call last):
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper
status = _inner_run()
^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run
return self.run(options, args)
^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 67, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 379, in run
requirement_set = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
result = self._result = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 397, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria
if not criterion.candidates:
^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py", line 156, in __bool__
return bool(self._sequence)
^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 174, in __bool__
return any(self)
^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 162, in <genexpr>
return (c for c in iterator if id(c) not in self._incompatible_ids)
^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 53, in _iter_built
candidate = func()
^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 187, in _make_candidate_from_link
base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 233, in _make_base_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 304, in __init__
super().__init__(
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 159, in __init__
self.dist = self._prepare()
^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 248, in _prepare
self._check_metadata_consistency(dist)
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 230, in _check_metadata_consistency
list(dist.iter_dependencies(list(dist.iter_provided_extras())))
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py", line 220, in iter_dependencies
elif any(req.marker.evaluate(context) for context in contexts):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py", line 220, in <genexpr>
elif any(req.marker.evaluate(context) for context in contexts):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py", line 325, in evaluate
return _evaluate_markers(self._markers, current_environment)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py", line 211, in _evaluate_markers
groups[-1].append(_evaluate_markers(marker, environment))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py", line 225, in _evaluate_markers
groups[-1].append(_eval_op(lhs_value, op, rhs_value))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py", line 183, in _eval_op
return spec.contains(lhs, prereleases=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py", line 552, in contains
normalized_item = _coerce_version(item)
^^^^^^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py", line 28, in _coerce_version
version = Version(version)
^^^^^^^^^^^^^^^^
File "/opt/pgadmin/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/version.py", line 202, in __init__
raise InvalidVersion(f"Invalid version: '{version}'")
pip._vendor.packaging.version.InvalidVersion: Invalid version: '6.12.4-arch1-1'
1