安装 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
文件形式提供,也可能有助于获取其他二进制扩展而无需在本地构建它们。