ImportError:在 windows7 32 位中运行 pip --version 命令时无法导入名称 main
Posted
技术标签:
【中文标题】ImportError:在 windows7 32 位中运行 pip --version 命令时无法导入名称 main【英文标题】:ImportError: cannot import name main when running pip --version command in windows7 32 bit 【发布时间】:2015-03-28 09:59:40 【问题描述】:我已经安装了最新的 python (2.7.9),与 pip 和 setuptools 捆绑在一起,适用于 windows 32 位。我已尝试重新安装 pip,但问题仍然存在。
这是在管理员 cmd 中运行 pip --version
后的错误:
Traceback (most recent call last):
File "D:\Python\lib\runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "D:\Python\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "D:\Python\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main
【问题讨论】:
这可能与文件权限有关 python 3.4 here 存在问题,已解决,值得检查。 我使用 icacls 命令解决了问题,但错误仍然存在。 "easy_install -U pip" 答案在***.com/questions/28031277/…unpack-url 提供 【参考方案1】:在 pip 10.0.0 中发现该 bug。
在linux中你需要修改文件:/usr/bin/pip from:
from pip import main
if __name__ == '__main__':
sys.exit(main())
到这里:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
【讨论】:
看来这就是解决方案。我试过了,到目前为止没有问题。 我正在使用 pip 10.0.1 并且错误仍然存在。你的解决方案有帮助。谢谢!您是否将此错误和解决方案报告给开发人员? 尽管此解决方案有效,但请不要修改pip
本身。请参阅下面的更简洁的解决方案,改为从 Python 调用 pip
。
对“pip 10.0.1”没有帮助。 pip --version pip 10.0.1 from /home/x/.local/lib/python2.7/site-packages/pip (python 2.7)
用法:sudo pip install tensorflow
输出:Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
@creepy_driver ,不建议手动修改已安装的软件包以适应环境,因为下次您更新到另一个版本时,即 10.0.3 您可能会遇到同样的问题。通过已安装的 Python 运行pip
的解决方法将指向 pip 正确使用合适的环境。【参考方案2】:
尽管最初的问题似乎来自 2015 年,但这个“错误”似乎也会影响安装 pip-10.0.0
的用户。
解决方法不是修改pip
,而是改变调用pip的方式。而不是通过 Python 本身调用/usr/bin/pip
调用pip
。例如,而不是下面的:
pip install <package>
如果来自 Python 版本 2(或默认 Python 二进制文件称为 python
),请执行以下操作:
python -m pip install <package>
或者如果来自 Python 版本 3:
python3 -m pip install <package>
【讨论】:
是的,我不记得我做了什么来解决这个问题,但我会向其他人开放。 当我使用给定的命令时,我得到了一个权限错误(我也是在根据 catalinpopescu 的回答改变 pip 后得到的)。但是,要下载用户范围的软件包(这样您就不需要管理权限),请使用:python3 -m pip installpython2 -m pip install $package
【参考方案3】:
在 Ubuntu Server 16 上,我遇到了与 python27 相同的问题。试试这个:
改变
from pip import main
if __name__ == '__main__':
sys.exit(main())
到
from pip._internal import main
if __name__ == '__main__':
sys.exit(main())
【讨论】:
在 ubuntu 16.04 上工作 这不是一个好主意。正如@RichardElkins 在另一个回答中提到的那样:“人们不应该浪费时间编辑安装后不打算修改的已安装文件”【参考方案4】:在 Windows 10 上,我使用以下命令来降级 pip:
python -m pip uninstall pip
python -m pip install pip==9.0.3
这也应该适用于 Linux 和 Mac。
【讨论】:
应该是python -m pip install pip==9.0.3 @elelias 哦,我没有意识到这一点。谢谢你告诉我! 我不得不python easy_install.py pip==9.0.3
,因为在第一行之后,没有找到 pip。
也适用于 Linux 和 Mac。在 pip/pip3 10 修复之前,这是一种解决方法。人们不应该浪费时间编辑安装后不打算修改的已安装文件..
升级后我遇到了路径问题,我做了以下工作。 sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall【参考方案5】:
我遇到了同样的问题,但是用 apt 和 pip 卸载并重新安装对我不起作用。
我看到了另一种解决方案,它提供了一种恢复 pip3 路径的简单方法:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
【讨论】:
我有 python 2.7,所以我必须更改命令以匹配 python 2.7 sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall 在 ubuntu 上完美运行,但我认为它不会在 windows 上运行【参考方案6】:我通过使用 get-pip.py
重新安装 pip 解决了这个问题。
-
从官方链接下载get-pip:https://pip.pypa.io/en/stable/installing/#upgrading-pip
使用命令运行它:
python get-pip.py
。
并且 pip 是固定的并且可以完美地工作。
【讨论】:
把pythonget-pip-py
改成pythonget-pip.py
完美运行!谢谢。
也为我工作。谢谢【参考方案7】:
在 MacOS 上,如果您通过 Homebrew 安装了 python,请更改 /usr/local/opt/python/libexec/bin/pip
中的行
来自
from pip.internal import main
到
from pip._internal import main
或使用这一班轮:sed -i '' "s/from pip import main/from pip._internal import main/" /usr/local/opt/python/libexec/bin/pip
解释:
这个问题是由 pip 版本 10 中的更改引起的,将内部命名空间移动到 main._internal
下,并且由 homebrew 放置的 bin 脚本仍然从旧位置(它曾经在版本 9 中的位置)查找它。问题和一些讨论https://github.com/pypa/pip/issues/5240
【讨论】:
【参考方案8】:如果您在 PATH
中有指向 pip 的硬链接(即,如果您安装了多个 python 版本)然后升级 pip,您也可能会遇到此错误。
解决方案在于再次创建硬链接。或者更好的是,停止使用硬链接并使用软链接。
【讨论】:
如何解决这个问题?【参考方案9】:在 Windows 10 上,我遇到了同样的问题。 PIP 19
已经安装在我的系统中,但没有出现。错误是No Module Found
。
python -m pip uninstall pip
python -m pip install pip==9.0.3
将pip
降级到 9.0.3 对我来说效果很好。
【讨论】:
【参考方案10】:对于在 PyCharm 中使用 pip 10 时遇到类似问题的用户,请在此处下载 latest version
【讨论】:
【参考方案11】:它适用于 ubuntu 16.04。 第 1 步:
sudo gedit /home/user_name/.local/bin/pip
打开一个包含内容的文件:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
将main
更改为__main__
,如下所示:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from pip import __main__
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(__main__._main())
保存文件并关闭它。你就完成了!
【讨论】:
【参考方案12】:试试这个
#!/usr/bin/python
# 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.i
try:
from pip import main
except ImportError:
from pip._internal import main
if __name__ == '__main__':
sys.exit(main())
【讨论】:
【参考方案13】:一个适用于 Ubuntu 的简单解决方案,但也可以解决 Windows 上的问题:
只要打电话
pip install --upgrade pip
【讨论】:
【参考方案14】:这解决了我在 ubuntu 18.04 中尝试使用 python3.6 时遇到的问题:
rm -rf ~/.local/lib/python3.6
您可以使用 mv 将文件夹移动到另一个位置而不是删除它,以进行测试:
mv ~/.local/lib/python3.6 ./python3.6_old
【讨论】:
【参考方案15】:打开你的终端linux。
hash -d pip
【讨论】:
嗨,Carlos,欢迎来到 Stack Overflow。为了帮助其他用户面临这个问题,请您添加答案以阐明此命令的作用以及它如何解决问题。【参考方案16】:在我们的案例中,在 2020 年使用 Python3,解决此问题的方法是将 Python 安装移动到实例化 VM 的 cloud-init
启动脚本。
我们在尝试使用用户在 VM 生命周期后期调用的脚本安装 Python 时遇到了同样的错误,但将相同的 Python 安装代码移动到 cloud-init
脚本消除了这个问题。
【讨论】:
以上是关于ImportError:在 windows7 32 位中运行 pip --version 命令时无法导入名称 main的主要内容,如果未能解决你的问题,请参考以下文章
cx_Freeze- ImportError:无法导入名称设置
ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序。但是DLL在那里
python ImportError:没有名为win32file的模块