编辑改写的问题不那么具有误导性
pip3和pip2之间有区别吗? pip2 -V
并且pip3-V
都产生输出
来自/usr/lib/python2.7/site-packages(python 2.7)的pip 7.1.0
下面的老问题
我已经看到了使用pip3设置python3 virtualenv的建议,但是当我输入时
pip3.4 -V
Run Code Online (Sandbox Code Playgroud)
我得到了输出
pip 7.1.0 from /usr/lib/python2.7/site-packages (python 2.7)
Run Code Online (Sandbox Code Playgroud)
这是完全一样的输出,我从得到pip -V
和pip2 -V
.我的python3安装工作正常.这是怎么回事?pip,pip2和pip3实际上是一回事吗?毕竟https://pip.pypa.io/en/stable/index.html,只提到了点子.奇怪的是,在我的/usr/bin
文件夹中,我可以看到我的pip3比我的pip3.4二进制文件更旧 - 这解释了为什么pip3 -V
失败了
pkg_resources.DistributionNotFound: pip==1.5.6
Run Code Online (Sandbox Code Playgroud)
那么这笔交易是什么?pip3语法是多余的,还是我的系统有问题?我使用opensuse 13.2
在Debian中,我在/ usr/local/bin中找到了三个短文件:pip; PIP 3; 和pip3.4.一切都相同:
#!/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())
Run Code Online (Sandbox Code Playgroud)
通过将pip3(带有sudo)的第一个shebang行改为
#!/usr/bin/python3
Run Code Online (Sandbox Code Playgroud)
然后确保原始点是明确的
#!/usr/bin/python2
Run Code Online (Sandbox Code Playgroud)
我所有类似的困惑和错误都消失了.
我在 EC2 上遇到了同样的问题,终于找到了解决方案。您可以通过以下方式使用它-
python3 -m pip <install> <library>
Run Code Online (Sandbox Code Playgroud)
在 pip 从正确位置调用 pip3 之前添加 python3 -m 。您可以按如下方式检查其位置-
python3 -m pip -V
pip 19.0.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
Run Code Online (Sandbox Code Playgroud)