安装 Python 模块 — Python 文档
安装 Python 模块
作为一个流行的开源开发项目,Python 拥有一个由贡献者和用户组成的活跃支持社区,这些社区还可以让其他 Python 开发人员根据开源许可条款使用他们的软件。
这允许 Python 用户有效地共享和协作,从其他人已经为常见(有时甚至是罕见的!)问题创建的解决方案中受益,并可能将他们自己的解决方案贡献给公共池。
本指南涵盖了该过程的安装部分。 有关创建和共享您自己的 Python 项目的指南,请参阅 分发指南 。
笔记
对于企业和其他机构用户,请注意,许多组织在使用和贡献开源软件方面都有自己的政策。 在使用 Python 提供的分发和安装工具时,请考虑这些策略。
关键术语
pip
是首选的安装程序。 从 Python 3.4 开始,它默认包含在 Python 二进制安装程序中。- 虚拟环境 是一个半隔离的 Python 环境,它允许安装包以供特定应用程序使用,而不是在系统范围内安装。
venv
是创建虚拟环境的标准工具,自 Python 3.3 以来一直是 Python 的一部分。 从 Python 3.4 开始,它默认将pip
安装到所有创建的虚拟环境中。virtualenv
是venv
的第三方替代品(和前身)。 它允许在 3.4 之前的 Python 版本上使用虚拟环境,这些版本要么根本不提供venv
,要么无法自动将pip
安装到创建的环境中。- Python 包索引 是开源许可包的公共存储库,可供其他 Python 用户使用。
- Python Packaging Authority 是一组开发人员和文档作者,负责维护和发展标准打包工具以及相关的元数据和文件格式标准。 他们在 GitHub 和 Bitbucket 上维护各种工具、文档和问题跟踪器。
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
安装软件包时,通常最好使用虚拟环境或按用户安装。
安装二进制扩展
Python 通常严重依赖基于源代码的分发,最终用户需要从源代码编译扩展模块作为安装过程的一部分。
随着对二进制 wheel
格式的支持的引入,以及通过 Python 包索引发布至少适用于 Windows 和 macOS 的轮子的能力,这个问题预计会随着时间的推移而减少,因为用户可以更经常地安装预先构建的扩展,而不是需要自己构建它们。
一些用于安装 科学软件 的解决方案尚未作为预构建的 wheel
文件提供,也可能有助于获取其他二进制扩展,而无需在本地构建它们。