我已经安装了最新的python(2.7.9)捆绑了pip和setuptools for windows 32-bit。我尝试重新安装pip,但问题仍然存在。
在管理员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
答案 0 :(得分:216)
该错误发现于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())
答案 1 :(得分:143)
尽管最初的问题似乎是从2015年开始,但这个问题仍然存在。似乎也会影响安装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>
答案 2 :(得分:50)
在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())
答案 3 :(得分:13)
在Windows 10上,我使用以下命令降级pip:
python -m pip uninstall pip
python -m pip install pip==9.0.3
有效。
答案 4 :(得分:6)
我通过使用get-pip.py
重新安装pip解决了这个问题。
python get-pip.py
。并且pip已经修复并完美运行。
答案 5 :(得分: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所做的bin脚本仍然从旧位置(它曾经是版本9)中查找它而引起的。问题和一些讨论https://github.com/pypa/pip/issues/5240
答案 6 :(得分:2)
我遇到了同样的问题,但是使用apt和pip卸载并重新安装对我来说不起作用。
我看到了另一种解决方案,提供了一种简单的方法来恢复pip3路径:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
答案 7 :(得分:1)
如果您的PATH
中有一个硬链接(即如果您安装了多个python版本),然后升级pip,则可能还会遇到此错误。
解决方案包括再次创建硬链接。或者甚至更好,停止使用硬链接并使用软链接。
答案 8 :(得分:0)
对于那些使用pip 10和PyCharm有类似问题的人,请在这里下载latest version
答案 9 :(得分:0)
它可在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())
保存文件并关闭它。您完成了!
答案 10 :(得分:0)
尝试
#!/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())
答案 11 :(得分:0)
一种适用于Ubuntu的简单解决方案,但也可以在Windows上解决该问题:
只需致电
pip install --upgrade pip
答案 12 :(得分:0)
这在尝试使用python3.6时解决了我在ubuntu 18.04中的问题:
<a href="{{ route('post', ['post' => @{{ post.id }}]) }}">My post</a>
您可以使用mv将文件夹移动到另一个位置,而不是也删除它进行测试:
rm -rf ~/.local/lib/python3.6
答案 13 :(得分:0)
打开您的终端Linux。
hash -d pip
答案 14 :(得分:0)
在我们的案例中,2020年使用Python3,解决此问题的方法是将Python安装移至实例化VM的cloud-init
启动脚本。
当我们尝试使用VM生命周期中稍后由用户调用的脚本来安装Python时,我们遇到了相同的错误,但是将相同的Python安装代码移至cloud-init
脚本中消除了此问题。