什么是 pip ?pip 是 Python 中的标准库管理器。它允许你安装和管理不属于 Python标准库 的其它软件包。本教程就是为 Python 新手介绍 pip。
通过本教程,你将学到:
1. 安装 Python 的标准发行版中未包含的其他软件包
2. 查找发布于 Python 包索引(PyPI)的包
3. 管理脚本和应用程序的安装需求
4. 卸载包及它的相关依赖
如你所见,Python 社区非常活跃,并且为 pip 创建了一些简洁的替代方案,你可以在本教程稍后的部分看到。
pip 入门
那么,什么是 pip 呢?pip 是 Python 的包管理器。这意味着它是一个工具,允许你安装和管理不属于标准库的其他库和依赖。
软件包管理极其重要,所以自 Python3 的 3.4 版本以及 Python2 的 2.7.9 版本开始,pip 一直被直接包括在 Python 的安装包内,同样还被用于 Python 的其它项目中,这使得 pip 成为了每一个 Pythonista(Python用户)必备的工具。
如果你已经了解了其他语言,那么可能会对包管理器的概念比较熟悉。JavaScript 使用 npm 管理软件包,Ruby 使用 gem,以及 .NET 使用 NuGet。Python 中,则是 pip 作为标准包管理器。
Python 的安装器中自带了 pip,所以你可以直接使用它,除非你安装的是更早版本的 Python。你可以通过在控制台中运行以下命令来验证 pip 是否可用:
你应该可以看到一个类似的输出,显示 pip 的版本以及安装位置还有 Python 的版本。如果你使用的是不包含 pip 的旧版本 Python,你可以根据 pip 安装文档中相应系统的说明进行安装。
你可能希望在虚拟环境中使用本教程的示例,以避免将包安装到 Python 的全局安装环境中。你可以从 Python 虚拟环境:入门级了解虚拟环境相关的信息,这篇文章的”使用虚拟环境“一节介绍了创建虚拟环境的基础知识。
使用 pip 安装软件包
Python 被认为是一种"内置电池"式的语言。这表示 Python 标准库包含大量的软件包和模块,这些模块有助于开发人员开发脚本和应用。
与此同时,Python 拥有一个活跃的社区,它提供了一个更大的软件包集合,以供你开发所需。这些软件包发布在 Python Package Index,也被称为 PyPI(发音 Pie Pea Eye)。PyPI 托管了大量包,包括开发框架,工具和库。
其中很多软件包通过为已有功能提供了友好地接口来简化 Python 开发。例如,你可以写一个脚本,仅使用 Python 标准库中的功能分析网页的内容:
脚本中,导入了 cgi 和 http.client,这两个都是在 Python 的标准库中。你创建了一个 HTTPSConnection 对象并指定服务器,然后调用 .request() 和 .getresponse() 解析响应信息。
从响应信息中,我们解析到 Content-Type 头信息并且使用 cgi 模块提取页面编码的字符集。
cgi.parse_header() 返回一个包括主要值和字典作为参数的元组。例如,Content-Type 头信息可能包含一个像 text/html; charset=ISO-8859-1 的值。
这个元组将字符串 text/html 作为第一个元素,第二个元素是 {'charset': 'ISO-8859-1'} 这样形式的字典。因为你只需要关心 charset 参数,可以使用下划线忽略元组的开头:_, params = cgi.parse_header(content_type)。
注意:Python 中下划线的含义解释了如何从元组解包值。
对页面编码后,你可以阅读相应信息并解码到文本中。你可以在控制台中运行这个例子查看它是怎么工作的:
对于一个用于解析网页内容的小脚本来说,这看起来做的工作有点多。幸运的是,有一个 Python 的包可以简化 HTTP 请求并提供了一个友好地接口来实现你的期望。
基础包安装
PyPI 托管了一个非常流行的库 requests 来完成 HTTP 请求。你可以通过它的官方文档站点了解所有的相关信息。
第一步是在你的环境中安装 requests 包。你可以运行 pip help 来了解 pip 支持的命令: