pip 升级搞乱了 python 安装

pip 升级搞乱了 python 安装

我正在尝试安装我在新创建的 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.

好吧,我想,这看起来没什么害处。

但是,执行此操作后,下次运行 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

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

$ sudo apt install python-pip

进而

$ sudo apt install python-pip
...
Setting up python-pip (8.1.1-2ubuntu0.4) ...

好的,我已经恢复了 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

所以问题是 pip 的升级搞砸了,我该如何修复它?

答案1

 $python -m pip uninstall pip

使用它,它会给你以前的 pip 版本。

答案2

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

当你这样做时请注意:

/usr/bin/pip freeze

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

/usr/local/bin/pip

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

ln -s /usr/local/bin/pip /usr/bin/pip

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

答案3

我不知道它是如何工作的,但我编辑了 /usr/bin/pip 文件并更改了有问题的第 7 行:

from pip import main

from pip._internal import main

这解决了问题。

我在 Windows 10 上使用 Ubuntu。

/usr/local/bin/pip正如另一个答案中提到的,这是我的机器之间和机器中的区别/usr/bin/pip

答案4

sudo python3 -m pip install --force-reinstall pip

这将解决选择不正确点的问题。

相关内容