因此我同时安装了python 2.7和3.6,并带有pip,pip2和pip3的符号链接:
> ll /usr/bin/pip*
lrwxrwxrwx 1 root root 16 Dec 4 16:42 /usr/bin/pip -> /usr/bin/pip-3.6
lrwxrwxrwx 1 root root 16 Dec 4 14:39 /usr/bin/pip2 -> /usr/bin/pip-2.7
-rwxr-xr-x 1 root root 370 Apr 25 2018 /usr/bin/pip-2.7
lrwxrwxrwx 1 root root 16 Dec 4 14:39 /usr/bin/pip3 -> /usr/bin/pip-3.6
-rwxr-xr-x 1 root root 370 Apr 25 2018 /usr/bin/pip-3.6
但是当我尝试获取pip-3.6的版本号时,它会失败:
> pip --version
Traceback (most recent call last):
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 658, in _build_master
ws.require(__requires__)
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 972, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 863, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (pip 19.3.1 (/usr/local/lib/python3.6/site-packages), Requirement.parse('pip==9.0.3'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/pip", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 3049, in <module>
@_call_aside
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 3033, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 3062, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 660, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 673, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python3.6/dist-packages/pkg_resources/__init__.py", line 858, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==9.0.3' distribution was not found and is required by the application
请注意,它可以正确识别3.6版本的pip为19.3.1(当前版本),但需要9.0.3(即2.7版本):
> pip2 --version
pip 9.0.3 from /usr/lib/python2.7/dist-packages (python 2.7)
任何尝试使用3.6版本的pip(例如/usr/bin/pip-3.6 install --upgrade pip
)的尝试都会失败。
我想摆脱一种python版本,但我正尝试pip install ansible
,它需要最新版本的pip,并且我必须支持2和3(是的,我知道2月是1月停产。
我将感谢所有建议。谢谢。