安装 Python 模块

电子邮件:

distutils-sig@python.org

作为一个流行的开源开发项目,Python 拥有一个活跃的贡献者和用户支持社区,他们也将其软件以开源许可条款提供给其他 Python 开发人员使用。

这使得 Python 用户能够有效地共享和协作,从其他人为常见(有时甚至是罕见!)问题创建的解决方案中受益,并有可能将他们自己的解决方案贡献给公共池。

本指南涵盖了流程的安装部分。有关创建和共享您自己的 Python 项目的指南,请参阅Python 打包用户指南

注意

对于企业和其他机构用户,请注意,许多组织在使用和贡献开源软件方面都有自己的政策。在使用 Python 提供的发行和安装工具时,请考虑这些政策。

关键术语

  • pip 是首选的安装程序。从 Python 3.4 开始,它默认包含在 Python 二进制安装程序中。

  • 虚拟环境 是一个半隔离的 Python 环境,允许为特定应用程序安装软件包,而不是在系统范围内安装。

  • venv 是用于创建虚拟环境的标准工具,自 Python 3.3 起就已成为 Python 的一部分。从 Python 3.4 开始,它默认将 pip 安装到所有创建的虚拟环境中。

  • virtualenvvenv 的第三方替代方案(和前身)。它允许在 3.4 之前的 Python 版本上使用虚拟环境,这些版本要么根本不提供 venv,要么无法自动将 pip 安装到创建的环境中。

  • Python 包索引 是一个公共存储库,其中包含可供其他 Python 用户使用的开源许可软件包。

  • Python 打包管理局 是一群负责维护和发展标准打包工具以及相关元数据和文件格式标准的开发人员和文档作者。他们在 GitHub 上维护各种工具、文档和问题跟踪器。

  • distutils 是最初于 1998 年添加到 Python 标准库的构建和分发系统。尽管 distutils 的直接使用正在逐步淘汰,但它仍然为当前的打包和分发基础设施奠定了基础,它不仅仍然是标准库的一部分,而且它的名称还以其他方式保留下来(例如用于协调 Python 打包标准开发的邮件列表的名称)。

在 3.5 版本中更改: 现在建议使用 venv 来创建虚拟环境。

基本用法

标准打包工具都设计为从命令行使用。

以下命令将从 Python 包索引安装模块及其依赖项的最新版本

python -m pip install SomePackage

注意

对于 POSIX 用户(包括 macOS 和 Linux 用户),本指南中的示例假设使用虚拟环境

对于 Windows 用户,本指南中的示例假设在安装 Python 时选择了调整系统 PATH 环境变量的选项。

也可以直接在命令行上指定确切或最低版本。当使用比较运算符(例如 >< 或其他会被 shell 解释的特殊字符)时,包名称和版本应放在双引号内

python -m pip install SomePackage==1.0.4    # specific version
python -m pip install "SomePackage>=1.0.4"  # minimum version

通常,如果已安装合适的模块,则尝试再次安装它将不会有任何效果。必须明确请求升级现有模块

python -m pip install --upgrade SomePackage

有关 pip 及其功能的更多信息和资源,请参阅Python 打包用户指南

虚拟环境的创建是通过 venv 模块完成的。将软件包安装到活动的虚拟环境中会使用上面显示的命令。

我该如何做?

这些是一些常见任务的快速答案或链接。

… 在 Python 3.4 之前的 Python 版本中安装 pip

Python 仅从 Python 3.4 开始捆绑 pip。对于早期版本,需要按照 Python 打包用户指南中的说明“引导”pip

… 仅为当前用户安装软件包?

--user 选项传递给 python -m pip install 将仅为当前用户安装软件包,而不是为系统的所有用户安装。

… 安装科学 Python 软件包?

许多科学 Python 软件包具有复杂的二进制依赖项,并且目前不容易使用 pip 直接安装。目前,用户通常更容易通过其他方式安装这些软件包,而不是尝试使用 pip 安装它们。

… 并行使用多个已安装的 Python 版本?

在 Linux、macOS 和其他 POSIX 系统上,将版本化的 Python 命令与 -m 开关结合使用,以运行 pip 的适当副本

python2   -m pip install SomePackage  # default Python 2
python2.7 -m pip install SomePackage  # specifically Python 2.7
python3   -m pip install SomePackage  # default Python 3
python3.4 -m pip install SomePackage  # specifically Python 3.4

也可能会提供适当版本化的 pip 命令。

在 Windows 上,将 py Python 启动器与 -m 开关结合使用

py -2   -m pip install SomePackage  # default Python 2
py -2.7 -m pip install SomePackage  # specifically Python 2.7
py -3   -m pip install SomePackage  # default Python 3
py -3.4 -m pip install SomePackage  # specifically Python 3.4

常见的安装问题

在 Linux 上安装到系统 Python

在 Linux 系统上,通常会将 Python 安装作为发行版的一部分。安装到此 Python 安装需要对系统具有 root 访问权限,并且如果使用 pip 意外升级组件,可能会干扰系统包管理器和系统的其他组件的运行。

在此类系统上,在使用 pip 安装软件包时,通常最好使用虚拟环境或每个用户的安装。

未安装 Pip

默认情况下,可能不会安装 pip。一个潜在的修复是

python -m ensurepip --default-pip

还有其他关于安装 pip 的资源。

安装二进制扩展

Python 通常严重依赖基于源代码的分发,最终用户需要将扩展模块从源代码编译为安装过程的一部分。

随着对二进制 wheel 格式的支持的引入,以及通过 Python 包索引发布至少适用于 Windows 和 macOS 的 wheel 的能力,这个问题预计会随着时间的推移而减少,因为用户将能够更频繁地安装预构建的扩展,而不是需要自己构建它们。

一些用于安装尚未作为预构建的 wheel 文件提供的科学软件的解决方案,也可能有助于获取其他二进制扩展,而无需在本地构建它们。