ImportError:在windows7 32位中运行pip --version命令时无法导入名称main

问题描述 投票:124回答:12

我安装了最新的python(2.7.9)捆绑了pip和setuptools for windows 32-bit。我已经尝试重新安装pip,但问题仍然存在。

这是在Administrator 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 pip importerror
12个回答
231
投票

该错误可在pip 10.0.0中找到。

在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())

0
投票

它适用于ubuntu 16.04。步骤1:

latest version

打开一个包含内容的文件:

 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__

保存文件并关闭它。你完成了!


0
投票

试试这个

#!/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())

0
投票

一个与Ubuntu一起使用的简单解决方案,但也可以解决Windows上的问题:

打电话吧

#!/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())

148
投票

即使最初的问题似乎是从2015年开始,这个“错误”似乎也影响了安装pip-10.0.0的用户。

解决方法不是修改pip,而是改变调用pip的方式。而不是调用/usr/bin/pip通过Python本身调用pip。例如,而不是以下:

pip install <package>

如果从Python版本2(或默认的Python二进制文件称为python)执行:

python -m pip install <package>

或者如果来自Python版本3:

python3 -m pip install <package> 

51
投票

在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())

16
投票

在Windows 10上,我使用以下命令降级pip:

python -m pip uninstall pip
python -m pip install pip==9.0.3

有用。


6
投票

我通过使用get-pip.py重新安装pip来解决问题。

  1. 从官方链接下载get-pip:https://pip.pypa.io/en/stable/installing/#upgrading-pip
  2. 使用commande:python get-pip.py运行它。

并且pip是固定的并且完美地工作。


6
投票

我有同样的问题,但卸载并重新安装apt和pip对我不起作用。

我看到另一种解决方案,提供了一种简单的方法来恢复pip3路径:

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

2
投票

在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

说明:

问题是由于在main._internal下移动内部命名空间的pip版本10的变化以及homebrew在旧版本(以前它在版本9中)中查找的bin脚本的变化引起的。问题和一些讨论https://github.com/pypa/pip/issues/5240


1
投票

如果你有一个硬链接到qazxsw poi(如果你安装了多个python版本的e.i.)然后你升级pip,你可能也会遇到这个错误。

解决方案包括再次创建硬链接。或者甚至更好,停止使用硬链接并使用软链接。


0
投票

对于那些使用Pip 10和PyCharm有类似问题的人,请在这里下载PATH

© www.soinside.com 2019 - 2024. All rights reserved.