pip 升级搞砸了 python 安装

Ste*_*hen 5 python pip

我正在尝试安装我在新创建的 Ubuntu 16.4 虚拟实例上编写的 python 应用程序。我需要安装一些以前安装在我自己的 PC 上的 python 包。

一切都在顺利进行,直到我看到这条消息:

You are using pip version 8.1.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Run Code Online (Sandbox Code Playgroud)

好吧,我想,这看起来已经足够无害了。

但是,执行此操作后,下次运行 pip 时,我会得到:

$ pip freeze
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main
Run Code Online (Sandbox Code Playgroud)

我想我应该恢复到旧的点子所以

$ sudo apt install python-pip
Run Code Online (Sandbox Code Playgroud)

进而

$ sudo apt install python-pip
...
Setting up python-pip (8.1.1-2ubuntu0.4) ...
Run Code Online (Sandbox Code Playgroud)

好的,我已经恢复了 pip 8.1.1。可惜

$ pip freeze
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main
Run Code Online (Sandbox Code Playgroud)

所以问题是 pip 升级搞砸了什么,我该如何解决?

小智 2

最近在 Ubunutu 16.04 中遇到了同样的问题。

当你这样做时请注意:

/usr/bin/pip freeze
Run Code Online (Sandbox Code Playgroud)

您将收到回溯错误。当我运行 which pip 时,我得到以下结果:

/usr/local/bin/pip
Run Code Online (Sandbox Code Playgroud)

我的 shell 使用的/usr/bin/pip不是正确的。我将/usr/bin/pip新的重命名并符号链接到旧的所在位置:

ln -s /usr/local/bin/pip /usr/bin/pip
Run Code Online (Sandbox Code Playgroud)

一旦我运行 pip freeze,就不再出现错误了。我能够看到已安装的软件包。