每当我尝试使用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(可能通过sudo pip install pip --upgrade)
pip
sudo pip install pip --upgrade
pip 10.x调整其内部位置。pip3你看到的命令是你的软件包维护者提供的(这里大概是基于debian的?),而不是pip管理的文件。
你可以在pip的问题跟踪器上阅读有关此内容的更多信息
你可能会想不升级系统PIP和改为使用的virtualenv。
virtualenv
要恢复pip3二进制文件,你需要sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall。
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
如果要继续在“不受支持的地区”(在系统软件包管理器之外升级系统软件包),则可以选择python3 -m pip ...而不是pip3。
python3 -m pip ...
pip3
我们可以通过修改pip文件来清除错误。
检查文件的位置:
$ which pip
路径-> / usr / bin / pip
> / usr / bin / pip
转到该位置(/ usr / bin / pip)并打开终端
(/ usr / bin / pip)
输入: $ sudo nano pip
$ sudo nano pip
您可以看到:
import sys from pip import main if __name__ == '__main__': sys.exit(main())
改成:
import sys from pip import __main__ if __name__ == '__main__': sys.exit(__main__._main())
然后按Ctrl + o写入更改并退出