我怎样才能最好地清除系统中不起作用的 pip?

我怎样才能最好地清除系统中不起作用的 pip?

我有一个系统我升级了几个 Ubuntu 版本,现在我似乎有多个版本的 pip:

$ whereis pip3
pip3: /usr/bin/pip3 /usr/local/bin/pip3 /usr/local/bin/pip3.5 /usr/local/bin/pip3.4 /usr/share/man/man1/pip3.1.gz

当我输入“pip3”时,我得到结果:

...Traceback (most recent call last):
  File "/usr/local/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3088, in <module>
    @_call_aside
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3072, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3101, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 576, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 589, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 778, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==8.1.1' distribution was not found and is required by the application

但是当我运行 /usr/bin/pip3(我可以看到 Synaptic 显示为已安装的 python3-pip 包中的一个)时,我没有收到任何错误,而是收到了要使用的参数列表。那么卸载系统上所有旧 pip 引用的最佳方法是什么?

答案1

解决当前问题的最简单方法是sudo rm /usr/local/bin/pip*

使用 pip 可执行文件可能会让您陷入一种奇怪的状态,因此现在许多人使用 的形式python3 -m pip而不是pip3。当您的系统上安装了多个版本的 Python 时(看起来您有 Python 3.4 和 3.5),就会出现问题,因为每个版本都有自己的 pip 模块副本。pip 还会将自身安装/usr/local/bin/为其特定版本(例如/usr/local/bin/pip3.5)以及/usr/local/bin/pip3+ /usr/local/bin/pip。根据更新的版本,这些可执行文件不会同步。

如果您需要最新版本的 pip,请执行sudo /path/to/python3 -m pip install --upgrade pip,删除/usr/local/bin/pip+ /usr/local/bin/pip3,然后使用 创建符号链接sudo ln -s /usr/local/bin/pip3.<VERSION> /usr/local/bin/pip3

相关内容