导入错误:在Windows 7 32位系统上运行pip --version命令时无法导入主要名称。

2024-06-26 02:54:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经安装了最新的python(2.7.9),它与pip和setuptools for windows 32位捆绑在一起。我试过重新安装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

Tags: piprunnameinpyformainwindows
3条回答

在Ubuntu服务器16上,python27也有同样的问题。试试这个:

改变

from pip import main
if __name__ == '__main__':
    sys.exit(main())

from pip._internal import main
if __name__ == '__main__':
    sys.exit(main())

尽管最初的问题似乎来自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> 

这个bug在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())

相关问题 更多 >