如何解决pip本身的版本冲突?

时间:2019-12-04 17:57:07

标签: python pip

因此我同时安装了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月停产。

我将感谢所有建议。谢谢。

0 个答案:

没有答案