使用pip管理库

2.5 使用pip管理库

安装Python后会默认安装pip工具,该工具可以用来安装、升级和移除库。默认情况下 pip 将从[Python Package Index]//pypi.org 处下载安装软件包。
pip 有许多子命令: “install”, “uninstall”, “freeze” 等等。下面我们来介绍一些比较重要且实用的pip命令。

2.5.1 安装、升级库(install)

通过指定包的名称来安装最新版本的包:
>>> pip install novas
Collecting novas
Downloading novas-3.1.1.3.tar.gz (136kB)
Installing collected packages: novas
Running setup.py install for novas
Successfully installed novas-3.1.1.3
通过提供包名称后跟 == 和版本号来安装特定版本的包:
>>> pip install requests2.6.0
Collecting requests
2.6.0
Using cached requests-2.6.0-py2.py3-none-any.whl
Installing collected packages: requests
Successfully installed requests-2.6.0
如果重新运行这个命令,pip 会注意到已经安装了所请求的版本,则什么都不做。我们可以提供不同的版本号来获取库指定的版本。
通过pip install –upgrade 将库升级到最新版本:
>>> pip install –upgrade requests
Collecting requests
Installing collected packages: requests
Found existing installation: requests 2.6.0
Uninstalling requests-2.6.0:
Successfully uninstalled requests-2.6.0
Successfully installed requests-2.7.0

2.5.2 删除库(uninstall)

>>> pip uninstall 库名

2.5.3 查询某个库信息(show)

>>> pip show requests
Name(库名): requests
Version(版本号): 2.27.1
Summary(介绍): Python HTTP for Humans.
Home-page(主页): //requests.readthedocs.io
Author(作者): Kenneth Reitz
Author-email(作者邮箱): [email protected]
License(许可): Apache 2.0
Location(安装路径): c:\program files\Python3102\lib\site-packages
Requires(依赖): idna, urllib3, certifi, charset-normalizer
Required-by(被依赖,指在当前本地所有安装好的第三方库中): tldextract, requests-file, DingtalkChatbot, baidu-aip

2.5.4 查询所有已安装的库(list)

>>> pip list
novas (3.1.1.3)
numpy (1.9.2)
pip (7.0.3)
requests (2.7.0)
setuptools (16.0)

2.5.5 查看已安装包列表(freeze)

pip freeze将生成一个类似的已安装包列表,但输出使用 pip install 期望的格式。一个常见的约定是将此列表放在 requirements.txt 文件中:
>>> pip freeze > requirements.txt
>>> more requirements.txt
novas3.1.1.3
numpy
1.9.2
requests2.7.0
然后可以将 requirements.txt 提交给版本控制并作为应用程序的一部分提供。然后用户可以使用 install -r 安装所有必需的包:
>>> Python -m pip install -r requirements.txt
Collecting novas
3.1.1.3 (from -r requirements.txt (line 1))

Collecting numpy1.9.2 (from -r requirements.txt (line 2))

Collecting requests
2.7.0 (from -r requirements.txt (line 3))

Installing collected packages: novas, numpy, requests
Running setup.py install for novas
Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0
pip其它常用命令
pip install pywin32==223 # 安装特定版本的库
Python.exe -m pip install –upgrade pip # 升级
pip show pip # 查看pip的详细信息,笔者一般用来查看pip安装路径
pip show 库名 # 查看某个库的详细信息
示例:
>>> pip show requests
Name(库名): requests
Version(版本号): 2.27.1
Summary(介绍): Python HTTP for Humans.
Home-page(主页): //requests.readthedocs.io
Author(作者): Kenneth Reitz
Author-email(作者邮箱): [email protected]
License(许可): Apache 2.0
Location(安装路径): c:\program files\Python3102\lib\site-packages
Requires(依赖): idna, urllib3, certifi, charset-normalizer
Required-by(被依赖,指在当前本地所有安装好的第三方库中): tldextract, requests-file, DingtalkChatbot, baidu-aip
read time out问题
在pip安装库的时候可能会出现read time out报错。一般由于Python库被墙导致下载速度变慢,pip下载超时(默认等待是15秒)。
解决办法:
更改Python包的下载源,使用国内镜像包并更改timeout默认值。
在C:\Users\当前用户名\中,新建pip文件夹,再此文件夹中创建pip.ini文件。文件内容如下:
[global]
timeout = 6000
index-url = //pypi.douban.com/simple/
[install]
use-mirrors = true
mirrors = //pypi.douban.com/simple/
trusted-host = pypi.douban.com
其它下载源:

源名称 源地址
清华 //pypi.tuna.tsinghua.edu.cn/simple
阿里云 //mirrors.aliyun.com/pypi/simple
中国科技大学 //pypi.mirrors.ustc.edu.cn/simple
华中理工大学 //pypi.hustunique.com
山东理工大学 //pypi.sdutlinux.org
豆瓣 //pypi.douban.com/simple

为CMD窗口设置代理:
set http_proxy=//xx.xx.xx.xx:xxx
set https_proxy=//xx.xx.xx.xx:xxx
将cmd窗口代理设置成系统代理服务器的设置:
netsh winhttp import proxy source=ie
练习
熟悉并练习掌握上述pip命令