如何使用pip安装特定版本的python第三方包
python的包管理器pip特别好用,我们可以使用它来方便的安装第三方包,但是怎样使用pip来安装特定版本的第三方包呢?
安装好python后,包管理器pip就已经安装好了,在终端中输入pip就可以查阅到pip一些常用用法,如:
1 | pip install package |
1 | pip uninstall package |
1 | pip list |
1 | pip show package |
1 | pip install package==version |
多版本Python共存时pip给指定版本的python安装package的方法
在linux安装了多版本python时(例如python2.7和3.4),pip安装的包不一定是用户想要的位置,此时可以用 -t
选项来指定位置
查看pip指向
1 | pip -V |
所以我们的问题变成了怎么通过pip去指定安装到Python3.4下
解决方案
更改pip3指向(推荐)
这种方法可以一劳永逸地让之后的pip3安装都顺利一点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
331.查看pip在哪
which pip
# 输出:/usr/bin/pip
2.查看python在哪
which python
# 输出:/usr/bin/python
3.查看python3在哪
which python3
# 输出:/usr/local/bin/python3
4.编辑pip所在文件
vim /usr/bin/pip
# 我们可以看到如下:
-----------------------------pip--------------------------------
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==9.0.1','console_scripts','pip'
__requires__ = 'pip==9.0.1'
import re
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(
load_entry_point('pip==9.0.1', 'console_scripts', 'pip')()
)
-----------------------------pip-end----------------------------
将第一行 #!/usr/bin/python 修改为
#!/usr/local/bin/python3
然后pip就指向python2了强制安装到Python3.4环境下
1
python3 -m pip install tensorflow-1.8.0-cp34-cp34m-manylinux1_x86_64.whl
这样就可以指定安装到python3下了,不过用这种方法的话每次要安装都得这么做,不过因为我是在别人服务器上做,不好随便更改,因此采用这种方式。
用
-t
选项来指定安装位置例如目标位置是
/usr/local/lib/python3.4/site-packages/
,要安装tensorflow-1.8.0-cp34-cp34m-manylinux1_x86_64.whl
这个包,则:1
pip install -t /usr/local/lib/python3.4/site-packages/ tensorflow-1.8.0-cp34-cp34m-manylinux1_x86_64.whl
这一种方式安装一般会报
Command "python setup.py egg_info" failed with error code 1
这个错 。解决方案(经验):1
2python -m pip install --upgrade --force pip
pip install setuptools==33.1.1