当前位置: 首页 > 知识库问答 >
问题:

文件"/usr/bin/pip",第9行,在从pip导入main重要错误:不能导入名称main

魏凯捷
2023-03-14

我试图使用python烧瓶运行一个网页,并将其与MySQL数据库连接,同时安装MySQL包,我收到这个错误。

我在EC2LinuxAWS上做这个。

共有3个答案

关项明
2023-03-14

我的分,我有相同的导入错误:无法导入name main

我的系统是Linux Ubuntu发行版,我执行了以下命令:

python -m pip uninstall pip

这已经删除了一个本地(针对用户)的pip版本。

我已经有了一个旧的pip/pip2系统可执行文件(apt-get安装在古代),它像一个魅力一样工作。

鞠晋
2023-03-14

这些步骤对我有效。

1-从python卸载pip更新
2-从Ubuntu卸载pip包
3-检查pip二进制文件是否不再存在于系统中。

python -m pip uninstall pip
apt remove python-pip
whereis pip

4-下载并安装pip。(万德ragt.com学分)

wget https://bootstrap.pypa.io/get-pip.py -O /tmp/get-pip.py
sudo python3 /tmp/get-pip.py
pip install --user pipenv
pip3 install --user pipenv
echo "PATH=$HOME/.local/bin:$PATH" >> ~/.profile
source ~/.profile
whereis pip

现在您应该可以安装任何您想要的pip包了。

祁嘉木
2023-03-14

>

如果您仍然想专门使用新的pip 10,有3个快速解决方案:

  • 只需重新打开一个新的bash会话(一个新的终端选项卡,或键入bash),PIP10就可以使用了(请参见pip-V)。debian的pip 8仍在安装中,但已损坏;或
  • $hash-d pip

注意:您将始终需要添加--user标志到非debian提供的pip 10,除非您在虚拟环境中!Ubuntu/Debian并不真正支持您在虚拟环境之外的系统范围内使用pip 10。从来没有sudo pip

详细信息:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100

所以,这里我们在Ubuntu 16.04 ec2机器中有Python 2.7.12,并得到重要错误:当试图使用pip时无法导入名称main。它是由pip安装-升级pip命令引起的:该命令将最新的pip版本10安装在Ubuntu的默认pip版本旁边,该版本来自操作系统发行版的python-pip debian包(系统Python安装),完全绕过Ubuntuapt子系统。它打破了Ubuntu的默认pip:来自python-pip(系统安装到 /usr/bin/pip*)的debian补丁启动器脚本试图从新安装的pip10库导入main(),但导入路径不同,因此失败。

pip问题跟踪器的开发人员线程将更详细地讨论此错误,包括一些建议的解决方案,例如:

>

  • $hash-dpip命令:当调用hash时,通过搜索$PATH中的目录并记住pip的完整路径名。以前记住的任何路径名都将被丢弃。-d选项使shell“忘记”给定包名的记忆位置;或

    类似地,您可以简单地重新打开一个新的bash会话(一个新的终端选项卡),以刷新$PATH中的pip路径名;或

    您可以使用版本化的pip2命令(或Python 3的pip)而不是pip来调用较旧的系统安装启动器/usr/bin/pip2,而任何位于中的pip脚本$HOME/. local/bindir(pip, pip 2, pip 2.7)将调用用户安装的新pip 10版本;

    您还可以将版本化的Python命令与-m开关结合使用,以运行适当的pip副本,例如:
    $python2-m pip安装-用户某些包#默认Python 2
    $python2.7如果您有几个版本的Python,并且需要PyPI的扩展,例如您的MySQL-python模块(MySQLdb)或Flask-MySQL,用于特定的Python版本,这很方便。--user开关仅在虚拟环境之外需要。

    或者,卸载两个pip中的一个-用户安装的或系统安装的-以解决冲突:
    $python-m pip卸载pip-删除手动安装的pip,以支持先前从python-pip安装的Ubuntu版本debian包(Python 3的python3-pip);它稍微旧一点,但是它可以从PyPI中找到并安装最新的模块,并且默认情况下在$PATH中有一个工作的pip命令;或者
    $sudo apt-get删除python-pip-卸载Ubuntu提供的pip,支持您最新的pip 10;如果它不能通过短的pip命令访问,只需将您的$HOME/。本地/bin目录添加到您的$PATH环境变量中,以使用pip注意:Ubuntu 16.04 pip v8.1.1和最新的pip v10.0.1产生完全相同的PyPI索引搜索结果,并且可以拉取相同的模块版本;

    最后,为了支持APT,您可以完全忽略这两个PIP,并从UbuntuRepo安装系统范围的Python软件包:
    $APT search

    注意:应该避免在Ubuntu/Debian上使用sudo pip命令(具有root访问权限),因为它会干扰系统包管理器(apt)的操作,并且当系统使用的python模块意外升级时,可能会影响Ubuntu操作系统组件,特别是通过对另一个pip包的依赖。建议永远不要使用Pip来更改系统范围的Python包,因为这些包是由Ubuntu上的apt-get管理的。

  •  类似资料:
    • 每当我试图安装任何包使用pip,我得到这个导入错误: 早些时候它工作得很好,我不知道它为什么会抛出这个错误。我已经搜索了这个错误,但是找不到任何可以修复它的东西。 如果你需要任何进一步的细节,请告诉我,我会更新我的问题。

    • 问题内容: 每当我尝试使用pip安装任何软件包时,都会收到此导入错误: 之前它运行良好,我不确定为什么会引发此错误。我已经搜索了此错误,但找不到任何可修复的错误。 如果你需要更多详细信息,请告诉我,我将更新我的问题。 问题答案: 你必须不经意间升级了系统(可能通过) pip 10.x调整其内部位置。pip3你看到的命令是你的软件包维护者提供的(这里大概是基于debian的?),而不是pip管理的文

    • 问题是,当我运行时,它运行良好并产生 pip 9.0.1从 /usr/lib/python3/dist-packages(python 3.6) 因此,我决定使用安装pip,并且工作良好 python pip已经是最新版本(9.0.1-2.3~ubuntu1)。 但是当我尝试运行时,会出现以下错误 回溯(最近一次调用):文件“/usr/bin/pip”,第9行,从pip导入主导入错误:无法导入名称

    • 我正在使用下面的版本 Python 3.7.4 Django 2.0.5 MySQL 5.5 restframe 3.0 当运行得到错误如下,请帮助我 文件“C:\Users\Imbesat Anwar\AppData\Local\Programs\Python\Python37\lib\site packages\rest\u framework\settings.py”,第22行,来自djan

    • serializer.py: 意见。py: urls.py: 我遇到了这个错误:ImportError:无法从“django”导入名称“six”。utils'(C:\Users\hajar\OneDrive\Desktop\stockm\env\lib\site packages\django\utils\u init\uuuz.py) 我安装六个pip安装六个 但不是工作????谁能帮我的忙?!

    • 我已经安装了最新的python(2.7.9)捆绑与pip和setupool为windows 32位。我尝试重新安装pip,但问题仍然存在。 以下是在管理员cmd中运行后的错误: