跳至主要内容

Pip Python 包管理教程

了解 Pip,这是一款帮助您正确管理 Python 分发包的强大工具。
· 11分钟 阅读

使用 AI 探索

如果您正考虑成为一名数据科学家,越早开始学习编程越好。数据从业者会把大量时间花在编码上。编程语言是数据专业人士分析海量数据并提取有价值洞见的关键工具。

最受欢迎的数据科学编程语言大概就是Python。Python 是一种开源、通用且功能强大的编程语言,广泛应用于诸多软件领域,如 Web 开发、游戏开发,当然还有数据科学。

虽然仅凭 Python 本身已经能做很多很酷的事情,但数据从业者——更广义上说,软件开发者——常常会使用额外的包(也称库)来让工作更轻松。包是可在不同应用与问题中重复使用的相关文件、模块与依赖项的集合。

Python 的一大优势在于其种类繁多、文档完善且功能全面的库。那这些库托管在哪里?如何安装并管理您感兴趣的包?

在本教程中,您将走进 Python 包的世界,并了解pip,这是 Python 的标准包安装器。pip 是一款强大的工具,能帮助您高效利用并管理作为数据专业人士与程序员会接触到的众多 Python 包。

理解 Python 中的包

我们用一个比喻来理解 pip。想象一下,Python 是一个漂亮且均衡的工具箱,里面有您编程所需的基本工具。当您在电脑上购买(安装)Python 时,它会附带一大批可随时使用的额外工具(包)。

所谓的Python 标准库是一组内置包,能为日常编程中经常出现的许多问题提供标准化的解决方案。由于这些包在现代 Python 发行版中已捆绑提供,您无需额外安装即可使用。您只需将它们“导入”到您的工作空间中(稍后会详细介绍)。

然而,有时您在 Python 或其标准库中找不到所需的工具。在这种情况下,您需要在别处获取新工具。幸运的是,互联网就像一家巨大的商店,您可以在其中找到由 Python 开发者为各种目的开发的成千上万的包。

而且最棒的是?绝大多数这些包都是免费使用的。如果您想进一步了解 Python 中的包以及如何开发自己的包,欢迎查看我们的《开发 Python 包》课程。

虽然第三方包可以托管在不同位置,但最受欢迎且最全面的仓库是Python 包索引(PyPI)。PyPI 上有超过 30 万个可用的 Python 包,是被 Python 社区接受的庞大在线包仓库。

一旦您找到了所需的包,就需要将其下载并安装到您的计算机上才能使用。该如何操作?这正是包管理器发挥作用的地方。

了解包管理器:pip

包管理器(也称包管理系统)是一种工具,用于以一致的方式自动化安装、升级、配置和移除计算机上的软件包。

包管理器旨在免除手动安装和更新的需求,从而确保在安装某个包时,会同时安装其运行所需的全部依赖。同样地,由于包管理器会利用 PyPI 与Anaconda等经认证的包仓库中存储的信息,它们也能确保包的完整性与真实性。

Python 最流行的包管理器是 pip。pip(“pip Install Packages”的首字母缩略词)诞生于 2008 年,如今已是以安全方式安装 Python 包及其依赖项的标准工具。大多数较新的 Python 发行版都预装了 pip。Python 2.7.9 以及 Python 3.4 及更高版本默认包含 pip。

pip 是一款功能强大且易于上手的工具,您只需少量命令即可管理 Python 包。尽管 pip 默认使用 PyPI 获取包,但它也能够从其他来源安装包,包括:

  • 版本控制系统,如 Github、Mercurial、Subversion 和 Bazaar。
  • 需求文件。通常,一个 Python 项目需要多个包才能运行。要一次性安装所有必要的包,pip 会使用所谓的 requirements.txt 文件,其中包含所需包及其正确版本的列表。
  • 分发文件。这些是带版本、可直接安装的文件,包含 Python 包、模块以及包运行所需的其他资源文件。常见两种形式:
    • 源码分发(通常缩写为“sdist”)
    • 轮子分发(通常缩写为“wheel”)

要使用 pip 并开始管理包,您首先需要确保它已安装在您的计算机上。要检查 pip 是否可用,请在命令行中运行以下任一语句:

>>pip3 --version

>>pip --version

pip 与 pip3 与 pip2

读完上一节,您可能在想 pip 和 pip3 有什么区别。随着 Python 3 的发布,pip 引入了新的 pip3 命令,它始终在您计算机的 Python 3 环境中运行。pip2 命令同理。因此,如果您想确保 pip 操作的是 Python 3 环境或 Python 2 环境,请分别使用 pip3 或 pip2 命令。

相比之下,pip 命令会在与当前上下文相适配的 Python 环境中运行。当您的计算机同时安装了 Python 2 和 Python 3 时,这一点尤为重要。

例如,macOS 计算机依赖 Python 2 来运行其部分核心功能。如果您当前处于 Python 2 环境,pip 命令就会为 Python 2 安装、卸载、升级或管理 Python 包。在 Python 3 环境下同理。

不过,在这类情况下,使用 pip 命令前应确认自己正处于哪个 Python 环境,否则可能会在错误的环境中操作包。

pip 实战

既然您已经了解了 pip 的基础知识并在电脑上安装好了它,下面看看如何使用它!

使用 pip 安装包

pip 最常见的用途就是安装 Python 包。比如,若您想安装pandas,这是在 Python 中处理数据框的标准包,最简单的方式是运行以下指令:

>>pip install pandas
[...]
Successfully installed pandas

您可能需要安装某个特定版本的包。使用 pip 非常容易,只需指定您要安装的版本。例如,想安装 pandas 的 1.4.0 版本:

>>pip install pandas==1.4.0

如果您想安装满足某些版本条件的包,pip 允许您使用一些布尔条件。例如,安装大于等于 1.0.0 且小于 1.5 的 pandas 版本:

>>pip install pandas>=1.0.0,<1.5.0

使用 pip 安装 scikit-learn 包

在下面的示例中,您将学习如何安装 scikit-learn 包,同时会自动安装其他必要的依赖项。

pip install scikit-learn

pip install scikit learn

您可能会从日志中注意到安装的不止 scikit-learn 一个包。这是因为 pip 会一并安装 scikit-learn 所依赖的其他包。这些其他包称为依赖项。

使用 pip 的 requirements 文件安装一组包

在协作项目中,团队所有成员使用相同版本的相同包非常常见。为了确保这一点,最佳方式是使用需求文件安装包。它通常是一个文本文件,包含项目中使用的所有包及其对应的版本。

pip 允许您使用需求文件一次性安装多个包。比如,我们的项目需要numpy、pandas和TensorFlow 这几个包,我们可以将它们及期望的版本写入 requirements.txt 文件,如下所示:

pip install requirements

要安装 requirements.txt 文件中列出的包,只需运行:

>>pip install -r requirements.txt

如果您想创建一个可与团队其他成员共享的需求文件,可以使用以下指令:

>>pip freeze > requirements.txt

使用 pip 从 GitHub 安装包

除了 PyPI,互联网上还有其他托管 Python 包的来源。像GitHub这样的版本控制系统包含包仓库,您可以在其中上传并与 Python 社区分享包。

假设您想安装托管在 GitHub 上的包。pip 只需要一个可在 GitHub URL 上访问的可执行资源即可。例如:

>>pip install git+https://github.com/pypa/sampleproject.git@main

使用 pip 升级包

有时,您需要将已安装在电脑上的包升级到更新版本。pip 让这个过程变得非常简单。例如,将 pandas 升级到最新版本:

>>pip install --upgrade pandas

如果您想升级 requirements.txt 中列出的所有包,可以使用:

>>pip install -r requirements.txt --upgrade

需要注意的是,pip 在升级到新版本之前也会自动卸载旧版本。

使用 pip 移除包

使用 pip 移除包非常容易。若要卸载 pandas,只需运行:

>>pip uninstall pandas

更多 pip 命令

虽然安装、升级和删除包是您使用 pip 时最常见的操作,但还有其他值得一提的命令。

如果您需要了解 pip 可用命令及其用法的更多信息,请运行:

>>pip help

列出当前环境中已安装的所有包:

>>pip list

查看某个感兴趣包的摘要信息:

>>pip show [NameOfPackage]

pip 故障排查

尽管 pip 本身相当简单,只需少量命令即可使用,但问题仍可能时有发生。以下是最常见的一些问题及其解决方法。

安装 pip

虽然不常见,但也可能出现未安装 pip 的情况。在这种情况下,安装 pip 的最简单方法是运行下面的语句。这会让 Python 触发内置包ensurepip,该包旨在在 Python 环境中安装 pip。

>>python3 -m ensurepip --default-pip

如果问题仍然存在,请查看 pip 的文档,尝试其他替代方案。

pip 不是最新版本

包的新版本可能带来错误修复、新功能和更高性能。这适用于每个 Python 包,包括 pip。如果您使用的是旧版本的 pip,可能会遇到意外行为。因此,始终建议保持 pip 与setuptools、wheel 等包为最新版本,它们有助于确保您也能从源码归档安装包。

>>pip install –upgrade pip setuptools wheel

结语

希望您喜欢本教程!作为安装包的标准工具,pip 对 Python 开发者至关重要。它的使用相当简单,一旦熟悉了命令与工作方式,包管理就会变得直观顺畅。

如果您在寻找更多资源,请查看以下 DataCamp 学习材料,立即开始使用 Python 与 pip 吧!

Python pip 常见问题

什么是 Python 中的包?

包是相关文件、模块与依赖项的集合,可在不同应用与问题中重复使用。

什么是包管理器?

包管理器是一种工具,用于以一致方式自动化安装、升级、配置和移除计算机上的包。

什么是 pip?

pip 是 Python 中的标准包管理器。

如何使用 pip 安装一个包?

使用 pip install [NameOfPackage]

如何使用 pip 升级一个包?

使用 pip install --upgrade [NameOfPackage]

如何使用 pip 移除一个包?

使用 pip uninstall [NameOfPackage]

主题