每当我试图使用pip安装任何包时,我都会得到这个导入错误:

guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'

guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())

它之前工作得很好,我不知道为什么它会抛出这个错误。 我已经搜索了这个错误,但找不到任何方法来修复它。

如果你需要进一步的细节,请让我知道,我会更新我的问题。


当前回答

您可以通过重新安装pip来解决此问题。

使用以下命令行命令之一重新安装pip:

Python2:

python -m pip uninstall pip && sudo apt install python-pip --reinstall

Python3:

 python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

其他回答

使用python3 -m pip install——user pip==9.0.1(或有效的版本)恢复

检查pip是否已经缓存在另一个路径上,为此,调用$ which pip并检查该路径与错误提示中的路径不同,如果是这样的话,运行:

$ hash -r

当缓存被清除时,pip将再次工作。 参考:http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory

在执行任何pip命令之前,请使用以下命令

hash -d pip

会有用的

不管怎样,我遇到了pip的问题(不是pip2或pip3):

$ pip -V
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 -V
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

不知怎么的(我不记得是怎么的了),我在~/中安装了python的东西。本地目录。在我从那里删除pip目录之后,pip又开始工作了。

$ rm -rf /home/precor/.local/lib/python2.7/site-packages/pip
$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

是有问题的包,当它生成de文件/usr/bin/pip, 您必须更改导入:

from pip import main

to

from pip._internal import main

这解决了问题,我不确定为什么它产生,但它在以下问题中说了一些事情:

pip10升级后的pyenv "ImportError:不能导入名称'main'"