安装 Python 模块¶
- 电子邮件:
作为一个广受欢迎的开源开发项目,Python 拥有一个活跃的、由贡献者和用户组成的支持社区,他们也以开源许可协议,将其软件提供给其他 Python 开发者使用。
这使得 Python 用户可以有效地分享与协作,从他人为常见(有时甚至是罕见!)问题创建的解决方案中受益,并可能将自己的解决方案贡献到公共资源库中。
本指南涵盖了安装过程。有关创建和分享你自己的 Python 项目的指南,请参阅 Python 打包用户指南。
备注
对于企业和其他机构用户,请注意,许多组织对于使用和贡献开源软件有自己的政策。在使用 Python 提供的分发和安装工具时,请考虑这些政策。
关键术语¶
pip是首选的安装程序。从 Python 3.4 开始,它被默认包含在 Python 的二进制安装程序中。虚拟环境 是一个半隔离的 Python 环境,它允许为特定应用程序安装包,而不是在系统范围内安装。
venv是创建虚拟环境的标准工具,自 Python 3.3 起成为 Python 的一部分。从 Python 3.4 开始,它默认在所有创建的虚拟环境中安装pip。virtualenv是venv的一个第三方替代品(也是其前身)。它允许在 Python 3.4 之前的版本中使用虚拟环境,这些版本要么根本不提供venv,要么无法在创建的环境中自动安装pip。Python 包索引(Python Package Index)是一个公共的开源许可软件包仓库,供其他 Python 用户使用。
Python 打包管理局(Python Packaging Authority)是由开发者和文档作者组成的团体,负责维护和发展标准的打包工具以及相关的元数据和文件格式标准。他们在 GitHub 上维护着各种工具、文档和问题跟踪器。
distutils是最初的构建和分发系统,于 1998 年首次被添加到 Python 标准库中。虽然直接使用distutils的方式正逐渐被淘汰,但它仍然为当前的打包和分发基础设施奠定了基础,并且它不仅仍然是标准库的一部分,其名称也以其他方式延续(例如用于协调 Python 打包标准开发的邮件列表名称)。
在 3.5 版更改: 现在推荐使用 venv 来创建虚拟环境。
基本用法¶
标准的打包工具都被设计为在命令行中使用。
以下命令将从 Python 包索引(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 之前的版本中安装 pip?¶
Python 从 3.4 版本开始才捆绑 pip。对于更早的版本,pip 需要像 Python 打包用户指南中所述的那样进行“引导安装”。
… 仅为当前用户安装包?¶
向 python -m pip install 传递 --user 选项,将只为当前用户安装包,而不是为系统的所有用户安装。
… 安装科学计算相关的 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 文件形式提供,也可能有助于获取其他二进制扩展而无需在本地构建它们。