安装 Python 模块

电子邮件:distutils-sig@python.org

作为一个流行的开源开发项目,Python 为开发者和用户提供了一个活跃的社区,同时也使他们的软件可供其他 Python 开发者在开源许可条款下使用。

这样可以让Python用户有效地共享和协作,使用别人的解决方案来简化(甚至解决)问题,同时也有可能为共享库贡献自己的解决方案。

本指南涵盖了安装部分。想要创建并共享你自己的Python项目,请参阅分发指南

注意

企业和其他机构用户请注意,许多组织对于使用和贡献开源软件有着自己的政策。在使用Python提供的分发和安装工具时,请考虑这些政策。

关键术语

  • pip 是首选的安装程序。从 Python 3.4 开始,Python默认内置了pip (import pip)。
  • 虚拟环境是一种半隔离的 Python 环境,允许包(package)被一个特定的应用程序安装及使用,而不是在操作系统范围内安装。
  • pyvenv是创建虚拟环境的标准工具,自Python 3.3以来一直是Python的一部分。从Python 3.4开始,它默认将pip安装到所有创建的虚拟环境中
  • virtualenvpyvenv的第三方替代品(和前身)。它允许在3.4之前的Python版本(不提供pyvenv或者不能自动安装pip环境)上使用虚拟环境。
  • Python Packaging Index是可供其他Python用户使用的开源许可证集的公共存储库。
  • Python Packaging Authority的开发人员和文档编制人员负责标准包装工具和相关元数据以及文件格式标准的维护和发展。他们在GitHubBitBucket上维护各种工具,文档和问题反馈。
  • distutils是在1998年首次添加到Python标准库的原始构建和分发系统。虽然直接使用distutils的方式正在逐步淘汰,但它仍然为当前的包装和分发奠定了基础,它不仅仅是标准库的一部分,并且其名称也以其他方式存在着(例如协调Python包装标准开发的邮件列表名称)。

基本用法

标准的打包工具都是为命令行设计的。

python -m pip install SomePackage

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包装用户指南中找到。

pyvenvpyvenv - 创建虚拟环境上有自己的文档。可以使用上面的命令安装到活动虚拟环境中。

常见问题

这是一些常见问题的快速解答或链接。

在Python 3.4或之前的版本中安装pip

仅从Python 3.4版本开始附带pip对于早期版本,pip需要按照“Python包装用户指南”中的说明进行“引导”。

只为当前用户安装软件包

--user选项传递到python -m pip install将仅为当前用户安装,而不是为系统的所有用户安装。

... 安装科学运算用Python库?

许多科学运算目的的Python库有着复杂的二进制依赖,并且不容易直接使用pip进行安装。在这个时间点,用户通常会更容易通过其他方法安装这些软件包,而不是尝试使用pip安装这些软件包。

... 在parallel虚拟系统中使用多个版本的Python?

在Linux,Mac OS X和其他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和Mac OS X发布轮子的能力,这个问题预计会随着时间的推移而减少,因为用户更经常地能够安装预先构建的扩展,而不需要自己构建它们。

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