我安装了最新的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
该错误可在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())
它适用于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__
保存文件并关闭它。你完成了!
试试这个
#!/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())
一个与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())
即使最初的问题似乎是从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>
在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())
在Windows 10上,我使用以下命令降级pip:
python -m pip uninstall pip
python -m pip install pip==9.0.3
有用。
我通过使用get-pip.py
重新安装pip来解决问题。
python get-pip.py
运行它。并且pip是固定的并且完美地工作。
我有同样的问题,但卸载并重新安装apt和pip对我不起作用。
我看到另一种解决方案,提供了一种简单的方法来恢复pip3路径:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
在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
如果你有一个硬链接到qazxsw poi(如果你安装了多个python版本的e.i.)然后你升级pip,你可能也会遇到这个错误。
解决方案包括再次创建硬链接。或者甚至更好,停止使用硬链接并使用软链接。
对于那些使用Pip 10和PyCharm有类似问题的人,请在这里下载PATH