Python-升级pip后出错:无法导入名称“ main”

发布于 2021-02-02 23:16:12

每当我尝试使用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())

之前它运行良好,我不确定为什么会引发此错误。我已经搜索了此错误,但找不到任何可修复的错误。

如果你需要更多详细信息,请告诉我,我将更新我的问题。

关注者
0
被浏览
78
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你必须不经意间升级了系统pip(可能通过sudo pip install pip --upgrade

    pip 10.x调整其内部位置。pip3你看到的命令是你的软件包维护者提供的(这里大概是基于debian的?),而不是pip管理的文件。

    你可以在pip的问题跟踪器上阅读有关此内容的更多信息

    你可能会想不升级系统PIP和改为使用的virtualenv

    要恢复pip3二进制文件,你需要sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall

    如果要继续在“不受支持的地区”(在系统软件包管理器之外升级系统软件包),则可以选择python3 -m pip ...而不是pip3



  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    我们可以通过修改pip文件来清除错误。

    检查文件的位置:

    $ which pip
    

    路径-> / usr / bin / pip

    转到该位置(/ usr / bin / 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写入更改并退出



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看