安装 Python 模块 — Python 文档

来自菜鸟教程
Python/docs/3.9/installing/index
跳转至:导航、​搜索

安装 Python 模块

电子邮件
distutils-sig@python.org

作为一个流行的开源开发项目,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 Packaging Authority 是一组开发人员和文档作者,负责维护和发展标准打包工具以及相关的元数据和文件格式标准。 他们在 GitHubBitbucket 上维护各种工具、文档和问题跟踪器。
  • distutils 是 1998 年首次添加到 Python 标准库中的原始构建和分发系统。 虽然直接使用 distutils 正在逐步淘汰,但它仍然为当前的打包和分发基础设施奠定了基础,它不仅仍然是标准库的一部分,而且它的名字还在其他方面(例如用于协调 Python 打包标准开发的邮件列表的名称)。

3.5 版更改: 现在推荐使用 venv 来创建虚拟环境。


基本用法

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

以下命令将从 Python Package Index 安装最新版本的模块及其依赖项:

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 才开始将 pip 与 Python 3.4 捆绑在一起。 对于早期版本,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 的轮子的能力,这个问题预计会随着时间的推移而减少,因为用户可以更经常地安装预先构建的扩展,而不是需要自己构建它们。

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