升级 pip 后出错:无法导入名称 'main'

Posted

技术标签:

【中文标题】升级 pip 后出错:无法导入名称 \'main\'【英文标题】:Error after upgrading pip: cannot import name 'main'升级 pip 后出错:无法导入名称 'main' 【发布时间】:2018-09-24 23:24:15 【问题描述】:

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

它之前工作正常,我不确定它为什么会抛出这个错误。 我已经搜索过这个错误,但找不到任何可以修复它的东西。

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

【问题讨论】:

在this link进行更多讨论。 我遇到了同样的问题,因为我使用pip install --upgrade pip 在我没有管理员权限的服务器上升级 pip。使用python -m pip uninstall pip 卸载 pip 解决了我的问题。 答案对我没有帮助。这是我的问题:github.com/pypa/pipenv/issues/2095 【参考方案1】:

您一定是无意中升级了您的系统 pip(可能是通过类似sudo pip install pip --upgrade 的方式)

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

您可以在 pip's issue tracker 上阅读更多相关信息

您可能希望升级您的系统 pip,而是使用 virtualenv。

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

如果您想继续在“不受支持的领域”(在系统包管理器之外升级系统包),您可以使用python3 -m pip ... 而不是pip3

【讨论】:

sudo apt install python3-pip --reinstall 没有解决这个问题,但是我可以使用python3 -m pip 安装包。谢谢你的帮助。我将其标记为已接受。 @g_p 更新了“修复”方向——刚刚在 docker 中验证了它们(我应该第一次这样做!) 我需要使用命令 'python -m pip uninstall pip' 因为 'sudo pip uninstall pip' 给出了与原始问题类似的错误 谢谢!这有帮助!对 python2 使用sudo python -m pip uninstall pip &amp;&amp; sudo apt install python-pip --reinstall 适用于 Windows 上的 Ubuntu。解决方案是@Barmaley 为 python2(默认的 python 解释器)建议的。【参考方案2】:

我们可以通过修改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写入更改并退出

希望这会成功!

【讨论】:

进行这些更改并不能解决问题,但将其更改回原始文本可以。 ¯_(ツ)_/¯ 我试过了,但得到了AttributeError: module 'pip.__main__' has no attribute 'main' 确保你写的是 _main() 而不是 main() 在最新版本 pip3 中,main() 移动到了pip._internal。导入语句应改为from pip._internal import main 这个答案在 Windows 上的 Ubuntu 18.04 上的 pip 19.3.1(python3.6.9,WSL-Ubuntu 中的默认值)中对我有用。 @Yossarian42 你用的是哪个版本的 pip3?【参考方案3】:

适用于 Ubuntu 系列、Debian、Linux Mint 用户

感谢 Anthony 的解释above,您可以保留原来的系统 pip(在 /usr/bin/ 和 dist-packages/ 中)并删除手动安装的 pip(在 ~/.local/ 中)以解决冲突:

$ python3 -m pip uninstall pip

来自python3-pip debian 软件包的Ubuntu/Debian pip v8.1.1 (16.04) (see$ pip3 -V) 显示与最新的pip v10.0.1 相同的搜索结果,并且可以很好地安装来自PyPI 的最新模块。它有一个有效的pip 命令(已经在 $PATH 中),加上自 2016 年以来默认修补的漂亮的--user 选项。看看pip release notes,较新的版本主要是关于用例特定的错误修复和某些新功能,所以不是每个人都必须急于升级 pip。无论如何,新的 pip 10 可以部署到 Python virtualenvs。

但不管点数如何,您的操作系统允许使用 APT 快速安装常用 Python 模块(包括 numpy),而无需 pip,例如:$ sudo apt install python3-numpy python3-scipy(具有系统依赖项)$ sudo apt install python3-pip (Debian打补丁的pip,稍微老一点但没关系)

快速 apt 语法提醒(详情请参阅man apt):$ sudo apt update(从最新源重新同步 Ubuntu 软件包索引文件)$ apt search &lt;python-package-name&gt;(全文搜索在所有可用的包)$ apt show &lt;python-package-name&gt;(显示详细的包描述)$ sudo apt install &lt;python-package-name&gt;

python- 为前缀的包名称适用于 Python 2;并以 python3- 为前缀用于 Python 3(例如 python3-pandas)。有数千个,它们在 Debian 和 Ubuntu 中进行集成测试。除非您寻求在每个用户级别(pip install --user 选项)或在 virtualenv/venv 中安装,否则 apt 可能是您所需要的。这些系统包也可以从虚拟环境中访问,因为如果您的环境没有提供模块的副本,virtualenv 将优雅地回退到在导入时使用系统库。 您在~/.local/lib 中自定义安装(使用 pip --user)的每个用户模块也会覆盖它们。

注意,由于这是一个system-wide 安装,您很少需要删除它们(需要注意操作系统依赖性)。这对于具有许多系统依赖项的软件包(例如使用 scipy 或 matplotlib)很方便,因为 APT 将跟踪并提供所有必需的系统库和 C 扩展,而使用 pip 你有no such guarantees。

事实上,对于系统范围的 Python 包(与 per-user、home dir 级别或更低级别相比),Ubuntu expects 使用 APT 包管理器(而不是 sudo pip)来避免破坏 OS:@ 987654352@ 目标与 APT 存储操作系统敏感模块的 /usr/lib/python3/dist-packages 目录完全相同。最近的 Debian/Ubuntu 版本严重依赖 Python 3,因此其预装模块由 apt 管理,不应更改。

所以如果你使用pip3 install命令,请确保它运行在一个隔离的虚拟开发环境中,比如使用virtualenv(sudo apt install python3-virtualenv),或者使用Python3内置(-m venv),或者在每个用户级别(--user pip 选项,自 2016 年以来在 Ubuntu 提供的 pip 中默认),但 不是 系统范围的(从不 sudo pip3!),因为 pip interferes 与操作当系统使用的 python 模块被意外更改时,可能会影响 Ubuntu OS components。祝你好运!


P. S. 以上所有内容都是针对“理想”解决方案(Debian/Ubuntu 方式)。

如果您想独占使用新的 pip3 v10,有 3 个快速解决方法:

只需打开一个新的 bash 会话(一个新的终端选项卡,或键入 bash)- pip3 v10 就可用了(请参阅 pip3 -V)。 debian 的 pip3 v8 仍然安装但已损坏;或 命令$ hash -d pip3 &amp;&amp; pip3 -V 刷新$PATH 中的pip3 路径名。 debian 的 pip3 v8 仍然安装但已损坏;或 命令 $ sudo apt remove python3-pip &amp;&amp; hash -d pip3 完全卸载 debian 的 pip3 v8,以支持您的新 pip3 v10。

注意:您总是需要将--user 标志添加到任何非 debian 提供的 pip 中,除非您在 virtualenv 中! (它将 python 包部署到~/.local/,自 2016 年以来默认在 debian/ubuntu 提供的 python3-pip 和 python-pip 中)。 Ubuntu/Debian 并不真正支持您在 virtualenv 之外的系统范围内使用 pip 10。永远不要sudo pip3

更多详情:https://github.com/pypa/pip/issues/5221#issuecomment-382069604https://github.com/pypa/pip/issues/5240#issuecomment-381673100

【讨论】:

你能帮我理解为什么安装升级版的pip 本地 使用--user,即没有sudo,会影响我运行安装的apt 的能力@ 987654370@?我以为两者会共存。但是正如this gist 所示,在我执行python3 -m pip install --user --upgrade pip 之后,apt 安装了一个中断。我不是在寻找解决方案 - 我只是真的很想了解这里发生了什么。 @George 它是由于 pip 库与其导入它们的包装器之间的不匹配而发生的。尝试立即运行系统 pip 命令(不应用任何 solutions)仍会调用 apt-installed 系统版本的 pip 包装脚本 /usr/bin/pip3,而不是安装为 --user (~/.local/bin/pip*) 的系统版本。到 OS 系统 $PATH 仍然设置为运行包装器的系统版本,但不是它的库.. @George 这是因为现在~/.local/lib/python3.?/site-packages/pip 安装了一个更新的 pip 包,它在相关 Python 导入中优先于系统 apt 包(用户本地站点优先于全局库)。而且由于较旧的包装器尝试from pip import main 而不是from pip._internal 或其__main__ 类针对较新版本的pip 包,因此来自gist 的pip 命令失败并显示ImportError: cannot import name 'main'。所以两个点可以共存(在磁盘上),但原始系统的功能将被“破坏”.. +1 表示--userpip install --user 是为我做的。 (我有 python 2.7、python 3.6 和 python 3.7,都安装在 Ubuntu 18.04 LTS 上。)【参考方案4】:

只需一步即可解决。

我也遇到过这个问题,但这可以通过 1 个命令简单地解决,而无需费心费力地浪费时间,而且我已经在多个系统上尝试过它,这是解决这个问题的最干净的解决方案。那就是:

对于 python3:- sudo python3 -m pip uninstall pip &amp;&amp; sudo apt install python3-pip --reinstall.

这样,您可以使用pip3 简单地安装软件包。检查使用pip3 --version

对于旧版本,请使用:sudo python -m pip uninstall pip &amp;&amp; sudo apt install python-pip --reinstall

这样,现在您可以使用pip 简单地安装软件包。检查使用pip --version

【讨论】:

【参考方案5】:

使用python -m pip install 而不是pip install

例子:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

pip(或pip3)可执行文件由您的发行版(Ubuntu 16.04 上的python-pip 软件包)提供,位于/usr/bin/pip

因此,当您升级 pip 时,它不会与 pip 包本身保持同步,并且可能会中断。

如果您只是直接使用python -m pip,例如如:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

它会遍历您的 Python 路径,找到最新版本的 pip 并执行该文件。

它依赖于文件可以通过import 执行这一事实,但这是一种非常标准的接口类型,因此比更黑客的 Debian 脚本更不可能被破坏。

然后我建议将以下别名添加到您的.bashrc

pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )

Ubuntu 18.04 /usr/bin/pip3 文件:

from pip import main

并且大概main 在某个时候从pip 中删除了,这就是问题所在。

中断的 pip 提交似乎是:95bcf8c5f6394298035a7332c441868f3b0169f4 "Move all internal APIs to pip._internal" 进入 pip 18.0。

pip3 9.0.1 更新到 18.0 后在 Ubuntu 16.04 中测试。

pyenv

但是,最终,对于认真的 Python 开发,我只建议您使用 pyenv + virtualenv 安装自己的本地 Python,这也可以解决这个 Ubuntu 错误:https://askubuntu.com/questions/682869/how-do-i-install-a-different-python-version-using-apt-get/1195153#1195153

【讨论】:

经过 5 个小时的搜索,这对我有用。如果你把你的地址发给我,我可以给你送花。谢谢。【参考方案6】:

您可以通过重新安装 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

【讨论】:

【参考方案7】:

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

$ hash -r

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

【讨论】:

【参考方案8】:

我在一个有 sudo apt 但没有 sudo pip 的系统上运行。 (而且没有 su 访问权限。)我按照 pip 的建议让自己陷入了同样的境地:

您使用的是 pip 版本 8.1.1,但是 18.0 可用。您应该考虑通过“pip install --upgrade pip”命令进行升级。

其他修复都不适用于我,因为我没有足够的管理员权限。但是,在阅读此内容时,我遇到了一些问题:

我不应该这样做。当然,pip告诉我。它撒了谎。 使用 --user 通过专注于用户专用目录解决了很多问题。

所以,我发现这个命令行可以让我回到原来的位置。如果您使用的版本与 8.1.1 不同,您显然会想要更改该行的那部分。

python -m pip install --force-reinstall pip==8.1.1 --user

这是唯一对我有用的东西,但效果很好!

【讨论】:

【参考方案9】:

我在 Ubuntu 16.04 系统上遇到了同样的问题。我设法通过使用以下命令重新安装 pip 来修复它:

curl https://bootstrap.pypa.io/get-pip.py | sudo python3

【讨论】:

它的好处是您从源代码安装它,并且上述方法均不适用于干净的空 Debian 9(来自我的专用服务器提供商) 超级用户上网,会出什么问题!【参考方案10】:

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

【讨论】:

【参考方案11】:

使用新的 LXC (strech) 在 Pixelbook 上发生了同样的事情。此解决方案与公认的解决方案非常相似,但有一个细微差别,为我修复了 pip3。

sudo python3 -m pip install --upgrade pip

这对版本造成了影响,现在它可以按预期工作了。

我在这里找到它... Python.org:Ensure pip is up-to-date

【讨论】:

【参考方案12】:

上面的命令对我不起作用,但非常有帮助:

sudo apt purge python3-pip
sudo rm -rf '/usr/lib/python3/dist-packages/pip'  
sudo apt install python3-pip
cd
cd .local/lib/python3/site-packages
sudo rm -rf pip*  
cd
cd .local/lib/python3.5/site-packages
sudo rm -rf pip*  
sudo pip3 install jupyter

【讨论】:

谢谢,这是在 Ubuntu 16.04 LTS 上意外升级 pip 后唯一真正为我工作的。【参考方案13】:

在 ubuntu 18.04.1 Bionic Beaver 中,您需要注销并重新登录(无需重新启动)才能获得正确的环境。

$ sudo apt install python-pip

$ pip --version
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip install --upgrade pip

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

$ exit
<login>

$ pip --version
pip 18.1 from /home/test/.local/lib/python2.7/site-packages/pip (python 2.7)

【讨论】:

【参考方案14】:

我使用sudo apt remove python3-pip 然后pip 工作。

 ~ sudo pip install pip --upgrade
[sudo] password for sen: 
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
➜  ~ sudo apt remove python3-pip   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libexpat1-dev libpython3-dev libpython3.5-dev python-pip-whl python3-dev python3-wheel
  python3.5-dev
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  python3-pip
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 569 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 215769 files and directories currently installed.)
Removing python3-pip (8.1.1-2ubuntu0.4) ...
Processing triggers for man-db (2.7.5-1) ...
➜  ~ pip

Usage:   
  pip <command> [options]

【讨论】:

这是因为 pip 用于 Python 2。OP 使用 pip3,即您刚刚删除的 pip 的 Python 3 版本。这两者是不同的,不可互换。【参考方案15】:

对于 Python 2.7 版,@Anthony 解决方案完美,将 python3 更改为 python,如下所示:

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

【讨论】:

【参考方案16】:

使用pip3 修复错误的方法是:

sudo cp -v /usr/local/bin/pip3 /usr/bin/pip3

一切正常:

 demon@UbuntuHP:~$ pip -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

 demon@UbuntuHP:~$ pip2 -V
 pip 10.0.1 from /home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

 demon@UbuntuHP:~$ pip3 -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

也许新的 10.0.1 版本的 pip 不会更新 /usr/bin 中的二进制文件? (好像没有)

编辑:同样的问题发生在 Ubuntu 18.04 中。我发现的最佳解决方案是将 pip 二进制文件从 /home/&lt;user/.local/bin 符号链接到 /usr/local/bin/usr/bin(取决于您的偏好),如下所示:

ln -sv /home/<user>/.local/bin/pip /usr/local/bin/pip
ln -sv /home/<user>/.local/bin/pip2 /usr/local/bin/pip2
ln -sv /home/<user>/.local/bin/pip2.7 /usr/local/bin/pip2.7
ln -sv /home/<user>/.local/bin/pip3 /usr/local/bin/pip3
ln -sv /home/<user>/.local/bin/pip3.6 /usr/local/bin/pip3.6

注意:&lt;user&gt;替换为您当前正在运行的用户

相关版本(最新)在:

3.6 版:

/home/demon/.local/lib/python3.6/site-packages/pip (python 3.6)

2.7 版:

/home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

【讨论】:

这个解决了我的问题。其他答案没有。 你真的不应该直接弄乱/usr/bin 中的文件。而且,如果/usr/local/bin 不在/usr/bin 之前,您的PATH 就是错误的。 /usr/local/bin 中不存在 pip 二进制文件。它仅在新版本中的/home/&lt;user&gt;/.local/bin 和/或/home/&lt;user&gt;/.local/lib/python&lt;version&gt;/site-packages/pip 中(v10.0+ 不更新/usr/bin 中的二进制文件)。因此,需要在 /usr/bin/usr/local/bin(取决于用户偏好)中创建二进制文件的副本或符号链接,以便 pip 可以从命令行全局运行。 目录 pip 二进制文件存在并且应该从以下位置链接/复制:demon@Bionic18:~/.local/bin$ ls pip pip2 pip2.7 pip3 pip3.6 pip 二进制文件默认为系统上安装的最新版本【参考方案17】:

Trick and works too

sudo -H pip install lxml

【讨论】:

【参考方案18】:

我遇到了同样的错误,但 python -m pip 仍在工作,所以我使用核选项 sudo python -m pip install --upgrade pip 修复了它。它为我做到了。

【讨论】:

【参考方案19】:

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

$ 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)

不知何故(我不记得如何)我在我的~/.local 目录中安装了 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)

【讨论】:

【参考方案20】:

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

from pip import main

from pip._internal import main

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

After pip 10 upgrade on pyenv "ImportError: cannot import name 'main'"

【讨论】:

【参考方案21】:

你可以试试这个:

sudo ln -sf $( type -P pip ) /usr/bin/pip

【讨论】:

虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,纯代码的答案没有用处。【参考方案22】:

当我想将系统pippip3从9.0.1升级到19.2.3时,我也遇到了这个问题。

运行pip3 install --upgrade pip后,pip版本变为19.2.3。但是main() 在最新版本中已移入pip._internal,这使得pip3 损坏。

所以在文件 /usr/bin/pip3 中,将 line 9: from pip import main 替换为 from pip._internal import main。该问题将得到修复,python2-pip 的工作原理相同。 (在 Ubuntu 18.04 发行版上测试)

根据@Vincent H. 的answer

【讨论】:

【参考方案23】:

请运行以下命令进行修复。运行python3 -m pip install --upgrade pip后,请运行以下命令。

hash -r pip

来源:https://github.com/pypa/pip/issues/5221

【讨论】:

【参考方案24】:

您可以使用 update-alternatives 简单地修复 pip 和 pip3 路径

首先你应该检查的是你当前的$PATH 运行echo $PATH,看看你能找到/usr/local/bin,这是pip3和pip通常所在的地方

您的系统正在查看/bin/pip/bin/pip3 的更改 所以我会说通过添加到您的 ~/.bash_profile 文件来修复 PATH 以便它持续存在

export PATH=$PATH:/usr/local/bin 然后用which pipwhich pip3检查它是否已修复

如果没有,则使用update-alternatives 最后修复它

update-alternatives --install /bin/pip3 pip3 /usr/local/bin/pip3 30

如果你想将 pip 指向 pip3 然后

update-alternatives --install /bin/pip pip /usr/local/bin/pip3 30

【讨论】:

【参考方案25】:

这对我有用!

hash -r pip # or hash -d pip

现在,卸载 pip 安装版本并使用以下命令重新安装。

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

如果 pip 坏了,使用:

python -m pip install --force-reinstall pip

希望对你有帮助!

【讨论】:

【参考方案26】:

我使用下面的代码加载了一个可能需要安装的模块,从而避免了这个错误(我也遇到了)——使用最新的 Python 和最新的 pip 没有问题

try
  from colorama import Fore, Back, Style
except:
  !pip install colorama
  from colorama import Fore, Back, Style

【讨论】:

【参考方案27】:

从 pip._internal 导入 main

from pip._internal import main

编辑 pip 代码

sudo nano /usr/bin/pip3

【讨论】:

您可以编辑答案并更好地指定它吗?不清楚如何编辑文件/usr/bin/pip3...【参考方案28】:

正如@cryptoboy 所说 - 检查您安装的 pip/python 版本

 demon@UbuntuHP:~$ pip -V
 demon@UbuntuHP:~$ pip2 -V
 demon@UbuntuHP:~$ pip3 -V

然后检查 .local/lib/ 文件夹中不需要的库。

我在迁移到较新的 Kubuntu 时备份了设置,并且在我的主目录中有 .local/lib/python2.7/ 文件夹。安装了python 3.6。我刚刚删除了旧文件夹,现在一切正常!

【讨论】:

【参考方案29】:

在 Debian 上,您需要先更新 apt....

sudo apt-get update -qq
sudo apt-get install python-pip -qq
sudo pip install pip --upgrade --quiet
sudo pip2 install virtualenv --quiet

如果您跳过“sudo apt-get update -qq”,您的 pip 将损坏并显示“找不到主要”错误。

【讨论】:

【参考方案30】:

此错误可能是权限错误。因此,使用 -H 标志测试执行命令:

sudo -H pip3 install numpy

【讨论】:

问题很清楚地表明 ImportError 不是权限错误

以上是关于升级 pip 后出错:无法导入名称 'main'的主要内容,如果未能解决你的问题,请参考以下文章

升级pip后出现ImportError: cannot import name main

升级pip3后出现importerror:cannot import name main

ImportError:升级到 Django 4.0 后无法从“django.conf.urls”导入名称“url”

pip升级后Import Error:cannot import name main解决方案

ImportError:无法使用 PIP 导入名称 HTTPSHandler

python初安装出现的一点问题(pycharm无法安装第三方模块,pip无法升级等)