Art*_*nom 3 python linux pip setuptools
更新 pip 和 setuptools==66.0 后,pip 停止工作并响应所有调用它的尝试,如下所示:
Traceback (most recent call last):
File "/usr/bin/pip", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 3249, in <module>
def _initialize_master_working_set():
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 3223, in _call_aside
f(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 3261, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 619, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 632, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 1044, in __init__
self.scan(search_path)
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 1077, in scan
self.add(dist)
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 1096, in add
dists.sort(key=operator.attrgetter('hashcmp'), reverse=True)
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 2631, in hashcmp
self.parsed_version,
File "/usr/local/lib/python3.8/dist-packages/pkg_resources/__init__.py", line 2685, in parsed_version
raise packaging.version.InvalidVersion(f"{str(ex)} {info}") from None
pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '0.23ubu ntu1' (package: distro-info)
Run Code Online (Sandbox Code Playgroud)
谢谢
事实证明,这是 setuptools 开发人员设计的,请参阅https://github.com/pypa/setuptools/issues/3772#issuecomment-1384342813上的一些评论。
简而言之,它已被删除以强制执行包的严格语义版本控制。如果您无法将版本控制升级为语义版本控制兼容,请将 setuptools 固定到版本 < 66。
这是Python的版本控制规范:https ://peps.python.org/pep-0440/