提示:
Python:pip的安装和使用
python有海量的第三方库或者说模块,这些库针对不同的应用,发挥不同的作用。我们在实际的项目中,或多或少的都要使用到第三方库,那么如何将他人的库加入到自己的项目中内呢?
Python官方的PyPi仓库为我们提供了一个统一的代码托管仓库-让全世界的人分享下载。
有了统一的管理仓库,那么我们是不是就可以从上面下载源码进行安装了?原则上是的,只不过由于使用源码安装比较繁琐,容易出错,也不够简便,因此出现了wheel文件格式,类似zip或rar文件,并提供专用的安装工具,帮助我们更快更简便的安装。pip就是这个工具!它能帮助我们自动从仓库上下载并安装第三方库,同时将该库所依赖的而本地没有安装的库一并安装。
由于历史的原因,Python有两个著名的包管理工具easy_install和pip。在Python2.7的安装包中,easy_install是默认安装的,而pip需要我们手动安装。随着Python版本的提高,easy_install已经逐渐被淘汰,但是一些比较老的第三方库,在现在仍然只能通过easy_install进行安装。目前,pip已经成为主流的安装工具,自Python2 >=2.7.9或者Python3.4以后默认都安装有pip。
就如同Python有2、2.7、3、3.6一样,pip也有pip、pip2、pip3之分。pip是从属于Python的,对应的pip负责给对应的Python安装第三方模块。我们不要关心pip后面跟的数字,核心的问题是这个pip命令对应的是哪个Python解释器,一个萝卜一个坑,想要为哪个Python解释器安装第三方库,就要调用它名下对应的pip。
cmd环境中,输入
pip -V
(大写V):可以查看属于哪个python
注意:Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。
你可以通过以下命令来判断是否已安装:
pip --version # Python2.x 版本命令
pip3 --version # Python3.x 版本命令
使用easy_install安装:
各种进入到easy_install脚本的目录下,然后运行easy_inatall pip
使用get-pip.py安装:
在下面的url下载get-pip.py脚本curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
然后运行:python get-pip.py
这个脚本会同时安装setuptools和wheel工具。
在linux下使用包管理工具安装pip:
例如,ubuntu下:sudo apt-get install python-pip
。Fedora系下:sudo yum install python-pip
在windows下安装pip:
在C:\python27\scirpts下运行easy_install pip进行安装。
刚安装完毕的pip可能需要先升级一下自身: 在Linux或masOS中:pip install -U pip
在windows中:python -m pip install -U pip
菜鸟教程
cmd环境中,输入pip -V
(大写V):可以查看属于哪个python
在命令行下,输入pip,回车可以看到帮助说明:
普通安装
再次强调,使用pip前请务必确认其所对应的Python解释器必须是你想要的那个!
以安装pillow模块为例。输入pip install pillow
,安装过程如下图:
指定版本安装
安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号。
pip install ‘Markdown<2.0’ pip install 'Markdown>2.0,<2.0.3
pip uninstall pillow
pip list
pip freeze > requirements.txt
这个功能非常常用、好用!经常被用作项目环境依赖文件。
pip install -r requirements.txt
使用上面的txt文件,批量安装第三方库。
可以使用pip install pillow-4.2xxxxxxx.whl的方式离线进行安装
pip源的选择
很多时候,比如网络不给力,连接超时、防火墙阻挡等等各种原因,我们可能无法从Python官方的PyPi仓库进行pip安装,这时候可以选择国内的第三方源,推荐使用豆瓣源,速度不错。
使用方法:
pip install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com pillow
需要注意的是,除了最后的pillow用你所期望的库名替代外,前面的参数都是固定写法,包括参数顺序。