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 解决了这个问题。

  1. 从官方下载 get-pip link: https://pip.pypa.io/en/stable/installing/#upgrading-pip
  2. 运行 它使用命令: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 脚本解决了这个问题。