pip 和 pip3 - 都指向 python3.5?
Posted
技术标签:
【中文标题】pip 和 pip3 - 都指向 python3.5?【英文标题】:pip and pip3 - both pointing to python3.5? 【发布时间】:2017-07-06 02:58:00 【问题描述】:我今天开始尝试shade;并在我的 ubuntu 16.04 系统上为 python2 和 python3 安装它;使用:
sudo pip install shade
分别
sudo pip3 install shade
两个命令都通过了;我真的没注意。
然后我尝试运行这个小测试脚本:
from shade import *
simple_logging(debug=True)
conn = openstack_cloud(cloud='myopenstack')
images = conn.list_images()
for image in images:
print(image)
使用 python3,我遇到了证书错误(这很好,如果发现我们的内部基础设施使用正确的证书,我会感到相当惊讶)。
但可以肯定的是,我也想使用 python2.7 运行;有人告诉我:
ImportError: 没有名为 shade 的模块
所以,我仔细看看 pip 和 pip3 是怎么说的:
> pip -V
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)
> pip3 -V
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)
看起来pip
和pip3
实际上都在安装我的python3,但是当我这样做时:
> python --version
Python 2.7.12
> python3 --version
Python 3.5.2
任何想法,任何人?是什么原因造成的,或者如何为 python2/pip 实际安装 shade?
根据要求:
> for i in pip pip3 python python3 ; do type $i ; done
pip is /usr/local/bin/pip
pip3 is /usr/local/bin/pip3
python is /usr/bin/python
python3 is /usr/bin/python3
【问题讨论】:
您介意运行for i in pip pip3 python python3 ; do type $i ; done
并将结果添加到您的问题中吗?
添加了该信息。
pip3
看起来像 pip
使用的默认选项。你没有pip2
吗?
/usr/bin/pip
存在吗?
@kichik Uups,还有一个pyp2
。这行得通,两个。谢谢。如果你回答这个问题,你肯定会得到我的支持!
【参考方案1】:
pip3
看起来像 pip
使用的默认选项。尝试使用 pip2
来显式安装 Python 2 包。
【讨论】:
遇到了同样的问题,pip2 也对我有用。 感激不尽..我一直在为这两个版本安装 python 模块而苦苦挣扎...现在生活会好很多..【参考方案2】:只需将/usr/local/bin/pip
的第一行更改为:
#!/usr/bin/python
和/usr/local/bin/pip3
的第一行到:
#!/usr/bin/python3
然后它就会正常运行:
> pip -V
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
> pip3 -V
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)
【讨论】:
感谢您的回答!这值得更多的支持。【参考方案3】:python -m pip
这将使用python可以看到的pip版本。
【讨论】:
【参考方案4】:您在 /usr/local/bin/ 中本地安装的 python3 的 pip 会影响 /usr/bin 中 pip 的系统安装。为了使用系统默认的pip,您可以:
明确指定路径:sudo /usr/bin/pip install shade
删除pip
的本地安装:sudo rm /usr/local/bin/pip
将您的 $PATH 更改为首选 /usr/bin
到 /usr/local/bin
使用来自/usr/bin
的pip2
别名:sudo pip2 install shade
从系统存储库安装python3
:sudo apt-get install python3
。如果你走这条路,别忘了删除你本地的python3
安装。
【讨论】:
【参考方案5】:我遇到了这个问题(pip 与 Python 3 相关联),这是由于 pip 安装程序将 pip 更新为指向 Python 3。我认为这是非常令人困惑的行为,因为从历史上看,每个人都将 pip 与 Python 2 和 pip3 相关联使用 Python 3。我们通过以下方式解决了这个问题:
# install pip
curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py
sudo python3 /tmp/get-pip.py
sudo python /tmp/get-pip.py # install the python2 version last so the pip binary is not overwritten with the python3 version
rm /tmp/get-pip.py
这里的关键是在安装 Python 3 pip 之后安装 Python 2 pip。
【讨论】:
很好的附录,尽管现在真的是时候克服 python2 了,并告诉任何用户从这里开始,你的东西只支持 python3。让过去的就过去吧;-) 同意!太糟糕了,我在游戏中这么晚才发现这一点:)以上是关于pip 和 pip3 - 都指向 python3.5?的主要内容,如果未能解决你的问题,请参考以下文章