ImportError: cannot import name main when running pip --version command in windows7 32 bit
ImportError: cannot import name main when running pip --version command in windows7 32 bit
我已经安装了最新的 python (2.7.9),它与 windows 32 位的 pip 和 setuptools 捆绑在一起。我已经尝试重新安装 pip,但问题仍然存在。
管理员命令中 运行 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
在 pip 10.0.0 中发现了错误。
在 linux 中您需要修改文件:/usr/bin/pip 来自:
from pip import main
if __name__ == '__main__':
sys.exit(main())
对此:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
在 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
下移动了内部命名空间,并且自制软件放置的 bin 脚本仍然从旧的地方(它曾经在版本 9 中的地方)看).问题和一些讨论 https://github.com/pypa/pip/issues/5240
对于将 pip 10 与 PyCharm 一起使用时遇到类似问题的用户,请在此处下载 latest version
即使最初的问题似乎是从 2015 年开始的,这个 'bug' 似乎也会影响安装 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>
如果您在 PATH
中有指向 pip 的硬链接(即如果您安装了多个 python 版本)然后升级 pip,您也可能会遇到此错误。
解决方案是重新创建硬链接。或者更好的是,停止使用硬链接并使用软链接。
在 Ubuntu 服务器 16 上,我在 python27 上遇到了同样的问题。试试这个:
改变
from pip import main
if __name__ == '__main__':
sys.exit(main())
到
from pip._internal import main
if __name__ == '__main__':
sys.exit(main())
我通过使用 get-pip.py
重新安装 pip 解决了这个问题。
- 从官方下载 get-pip link: https://pip.pypa.io/en/stable/installing/#upgrading-pip
- 运行 它使用命令:
python get-pip.py
.
并且 pip 是固定的并且工作完美。
在 Windows 10,我使用以下命令降级 pip:
python -m pip uninstall pip
python -m pip install pip==9.0.3
这也适用于 Linux 和 Mac。
适用于 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())
保存文件并关闭它。大功告成!
试试这个
#!/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())
我遇到了同样的问题,但是用 apt 和 pip 卸载并重新安装对我不起作用。
我看到另一个解决方案提供了一种恢复 pip3 路径的简单方法:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
适用于 Ubuntu 的简单解决方案,但也可以解决 windows 上的问题:
直接打电话
pip install --upgrade pip
这解决了我在 ubuntu 18.04 中尝试使用 python3.6:
时的问题
rm -rf ~/.local/lib/python3.6
您可以使用 mv 将文件夹移动到另一个地方而不是删除它,以进行测试:
mv ~/.local/lib/python3.6 ./python3.6_old
打开你的终端linux。
hash -d pip
在Windows10,我遇到了同样的问题。 PIP 19
已安装在我的系统中,但未显示。错误是 No Module Found
。
python -m pip uninstall pip
python -m pip install pip==9.0.3
将 pip
降级到 9.0.3 对我来说效果很好。
在我们的案例中,在 2020 年使用 Python3,解决此问题的方法是将 Python 安装移动到实例化 VM 的 cloud-init
启动脚本。
我们在尝试使用用户在 VM 生命周期后期调用的脚本安装 Python 时遇到了同样的错误,但将相同的 Python 安装代码移动到cloud-init
脚本解决了这个问题。
我已经安装了最新的 python (2.7.9),它与 windows 32 位的 pip 和 setuptools 捆绑在一起。我已经尝试重新安装 pip,但问题仍然存在。
管理员命令中 运行 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
在 pip 10.0.0 中发现了错误。
在 linux 中您需要修改文件:/usr/bin/pip 来自:
from pip import main
if __name__ == '__main__':
sys.exit(main())
对此:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
在 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
下移动了内部命名空间,并且自制软件放置的 bin 脚本仍然从旧的地方(它曾经在版本 9 中的地方)看).问题和一些讨论 https://github.com/pypa/pip/issues/5240
对于将 pip 10 与 PyCharm 一起使用时遇到类似问题的用户,请在此处下载 latest version
即使最初的问题似乎是从 2015 年开始的,这个 'bug' 似乎也会影响安装 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>
如果您在 PATH
中有指向 pip 的硬链接(即如果您安装了多个 python 版本)然后升级 pip,您也可能会遇到此错误。
解决方案是重新创建硬链接。或者更好的是,停止使用硬链接并使用软链接。
在 Ubuntu 服务器 16 上,我在 python27 上遇到了同样的问题。试试这个:
改变
from pip import main
if __name__ == '__main__':
sys.exit(main())
到
from pip._internal import main
if __name__ == '__main__':
sys.exit(main())
我通过使用 get-pip.py
重新安装 pip 解决了这个问题。
- 从官方下载 get-pip link: https://pip.pypa.io/en/stable/installing/#upgrading-pip
- 运行 它使用命令:
python get-pip.py
.
并且 pip 是固定的并且工作完美。
在 Windows 10,我使用以下命令降级 pip:
python -m pip uninstall pip
python -m pip install pip==9.0.3
这也适用于 Linux 和 Mac。
适用于 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())
保存文件并关闭它。大功告成!
试试这个
#!/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())
我遇到了同样的问题,但是用 apt 和 pip 卸载并重新安装对我不起作用。
我看到另一个解决方案提供了一种恢复 pip3 路径的简单方法:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
适用于 Ubuntu 的简单解决方案,但也可以解决 windows 上的问题:
直接打电话
pip install --upgrade pip
这解决了我在 ubuntu 18.04 中尝试使用 python3.6:
时的问题rm -rf ~/.local/lib/python3.6
您可以使用 mv 将文件夹移动到另一个地方而不是删除它,以进行测试:
mv ~/.local/lib/python3.6 ./python3.6_old
打开你的终端linux。
hash -d pip
在Windows10,我遇到了同样的问题。 PIP 19
已安装在我的系统中,但未显示。错误是 No Module Found
。
python -m pip uninstall pip
python -m pip install pip==9.0.3
将 pip
降级到 9.0.3 对我来说效果很好。
在我们的案例中,在 2020 年使用 Python3,解决此问题的方法是将 Python 安装移动到实例化 VM 的 cloud-init
启动脚本。
我们在尝试使用用户在 VM 生命周期后期调用的脚本安装 Python 时遇到了同样的错误,但将相同的 Python 安装代码移动到cloud-init
脚本解决了这个问题。