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

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

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

  • distutils 是最初添加到 Python 标准库中的原始构建和分发系统,最初是在 1998 年添加的。虽然 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 需要按照 Python 包裹用户指南中的描述进行“引导”。

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

--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 发布 wheels,这个问题预计会随着时间的推移而减少,因为用户能够更经常地安装预构建的扩展,而不是需要自己构建它们。

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