As soon as I've upgraded Python from 3.8 to 3.9 on Arch Linux I noticed a strange behaviour with all packages that depend on setuptools. What I'll decribe below does NOT happen with Python 3.8 and these packages nor with Python 3.9 and packages that do not depend on setuptools. This is shy I'm reporting this issue here.
ERROR: Exception:
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 216, in _main
status = self.run(options, args)
File "/usr/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
return func(self, options, args)
File "/usr/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 324, in run
requirement_set = resolver.resolve(
File "/usr/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py", line 183, in resolve
discovered_reqs.extend(self._resolve_one(requirement_set, req))
File "/usr/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py", line 388, in _resolve_one
abstract_dist = self._get_abstract_dist_for(req_to_install)
File "/usr/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py", line 331, in _get_abstract_dist_for
skip_reason = self._check_skip_installed(req)
File "/usr/lib/python3.9/site-packages/pip/_internal/resolution/legacy/resolver.py", line 236, in _check_skip_installed
req_to_install.check_if_exists(self.use_user_site)
File "/usr/lib/python3.9/site-packages/pip/_internal/req/req_install.py", line 437, in check_if_exists
if not self.req.specifier.contains(existing_version, prereleases=True):
File "/usr/lib/python3.9/site-packages/packaging/specifiers.py", line 790, in contains
item = parse(item)
File "/usr/lib/python3.9/site-packages/packaging/version.py", line 57, in parse
return Version(version)
File "/usr/lib/python3.9/site-packages/packaging/version.py", line 296, in __init__
match = self._regex.search(version)
TypeError: expected string or bytes-like object
As soon as I've upgraded Python from 3.8 to 3.9 on Arch Linux I noticed a strange behaviour with all packages that depend on
setuptools. What I'll decribe below does NOT happen with Python 3.8 and these packages nor with Python 3.9 and packages that do not depend onsetuptools. This is shy I'm reporting this issue here.--userpackages, meaning~/.local/bin,~/.local/liband~/.local/includeare all emptysetuptools, for examplepip install --user vim-vint- installs OKsetuptools- installs OKpip install --user locust- installs OKAt this point you are unable to use
pip installbecause it will always give the above error.Observation: even though
setuptoolswas originally installed in/usr/lib/python3.9/site-packages/, after we've installed a package that depends onsetuptoolsit was also put in~/.local/lib/python3.9/site-packages/.