安装 Python 模块¶
作为一个热门的开源开发项目,Python 拥有活跃的贡献者和用户支持社区并让他们的软件可供其他 Python 开发者在开源许可条款下使用。
这允许 Python 用户有效地共享和协作,从其他人已经为常见(有时甚至是罕见的)问题所创建的解决方案中获益,以及可以将他们自己的解决方案贡献到公共资源库中。
本指南涵盖了该流程中安装的部分。有关创建和共享自己的 Python 项目的指导,请参阅 Python packaging user guide。
备注
对于企业和其他机构用户,请注意许多组织都有自己的政策来使用和贡献开源软件。在使用 Python 提供的分发和安装工具时,请考虑这些政策。
关键术语¶
pip 是首选的安装程序。 它默认包括在 Python 二进制安装程序中。
虚拟环境 是一种半隔离的 Python 环境,允许为特定的应用安装各自的包,而不是安装到整个系统。
venv是用于创建虚拟环境的标准工具。 它默认会将 pip 安装至所创建的每个虚拟环境中。virtualenv是venv的一个第三方替代物(及其前身)。Python Package Index (PyPI) 是一个供所有 Python 用户使用的开源许可的公共软件包仓库。
Python Packaging Authority 负责标准打包工具以及相关元数据和文件格式标准维护与改进的开发人员和文档作者团队。他们在 GitHub 上维护着各种工具、文档和问题追踪系统。
在 3.5 版本发生变更: 现在推荐使用 venv 来创建虚拟环境。
基本使用¶
标准打包工具完全是针对命令行使用方式来设计的。
以下命令将从 PyPI 安装最新版本的模块及其依赖项:
python -m pip install SomePackage
备注
对于 POSIX 用户(包括 macOS 和 Linux 用户),本指南中的示例假定使用了 virtual environment。
对于 Windows 用户,本指南中的示例假定在安装 Python 时选择了修改系统 PATH 环境变量。
在命令行中指定一个准确或最小版本也是可以的。当使用比较运算符例如 >, < 或其他某些可以被终端所解析的特殊字符时,包名称与版本号应当用双引号括起来:
python -m pip install SomePackage==1.0.4 # 特定版本
python -m pip install "SomePackage>=1.0.4" # 最小版本
通常,如果一个匹配的模块已安装,尝试再次安装将不会有任何效果。要升级现有模块必须显式地发出请求:
python -m pip install --upgrade SomePackage
更多有关 pip 及其功能的信息和资源可以在 Python 软件包用户指南 中找到。
虚拟环境的创建可使用 venv 模块来完成。向已激活虚拟环境安装软件包可使用上文所介绍的命令。
我应如何 ...?¶
这是一些常见任务的快速解答或相关链接。
... 只为当前用户安装软件包?¶
将 --user 选项传入 python -m pip install 将只为当前用户而非为系统中的所有用户安装软件包。
... 安装科学计算类 Python 软件包?¶
许多科学计算类 Python 软件包都有复杂的二进制依赖项,目前直接使用 pip 安装并不容易。 用户通过 其他方式 安装这些软件包通常会比尝试使用 pip 安装更加容易。
... 使用并行安装的多个 Python 版本?¶
在 Linux、macOS 以及其他 POSIX 系统上,使用带版本号的 Python 命令结合 -m 开关来运行对应版本的 pip:
python3 -m pip install SomePackage # 默认 Python 3
python3.14 -m pip install SomePackage # 指定 Python 3.14
也可以使用对应适当版本的 pip 命令。
在 Windows 上,可使用 py Python 启动器配合 -m 开关:
py -3 -m pip install SomePackage # 默认的 Python 3
py -3.14 -m pip install SomePackage # Python 3.14 专属
常见的安装问题¶
在 Linux 的系统 Python 版本上安装¶
在 Linux 系统上,通常会包括某个 Python 版本作为发行版的组成部分。 将软件包安装到这个 Python 版本中需要有系统 root 权限,并可能会干扰到系统软件包管理器和其他系统组件的运作,如果在使用 pip 时意外升级了某个组件的话。
在这样的系统上,在通过 pip 安装软件包时使用虚拟环境或分用户安装是更好的做法。
未安装 pip¶
在默认情况下 pip 有可能未被安装。 一个可能的解决办法是:
python -m ensurepip --default-pip
还有关于 安装 pip 的其他资源。
安装二进制编译扩展¶
Python 曾严重依赖基于源码的分发方式,最终用户需要在安装过程中从源码编译扩展模块。
随着二进制 wheel 格式的引入以及通过 PyPI 发布 wheel 的能力,这个问题正在逐渐减弱,因为用户能够更经常地安装预编译的扩展,而无需自己构建它们。
某些用于安装尚未作为预构建 wheel 文件提供的 科学计算软件 的解决方案,也有助于在无需本地构建的情况下获取其他二进制扩展。