我正在尝试安装我在新创建的 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
这将解决选择不正确点的问题。