Skip to main content

安装Python模块

Email:

distutils-sig@python.org

作为一个流行的开源开发项目,Python有一个活跃的贡献者和用户的支持社区,也使他们的软件可供其他Python开发人员使用开源许可证条款。

这允许Python用户有效地共享和协作,从其他人已经创建的常见(有时甚至罕见的)问题的解决方案中受益,以及潜在地为公共池贡献自己的解决方案。

本指南涵盖了安装过程的一部分。有关创建和共享自己的Python项目的指南,请参阅 分发指南

注解

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

关键术语

  • pip 是首选安装程序。从Python 3.4开始,它被默认包含在Python二进制安装程序中。

  • 虚拟环境 是一个半隔离的Python环境,允许安装包以供特定应用程序使用,而不是在系统范围内安装。

  • venv 是创建虚拟环境的标准工具,自Python 3.3以来一直是Python的一部分。从Python 3.4开始,它默认将 pip 安装到所有创建的虚拟环境中。

  • virtualenvvenv 的第三方替代(和前身)。它允许在3.4之前的Python版本上使用虚拟环境,这些版本根本不提供 venv,或者不能自动将 pip 安装到创建的环境中。

  • Python包装索引 是可供其他Python用户使用的开源许可程序包的公共存储库。

  • Python包装管理局 是负责标准包装工具和相关元数据和文件格式标准的维护和演进的开发人员和文档作者组。他们在 GitHubBitBucket 上维护各种工具,文档和问题跟踪器。

  • distutils 是在1998年首次添加到Python标准库的原始构建和分发系统。虽然直接使用 distutils 正在逐步淘汰,但它仍然为当前的包装和分发基础设施奠定了基础,它不仅仅是标准的一部分库,但它的名字存在其他方式(如用于协调Python包装标准开发的邮件列表的名称)。

3.6 版后已移除: pyvenv 是为Python 3.3和3.4创建虚拟环境的推荐工具,是 在Python 3.6中弃用

在 3.5 版更改: 现在建议使用 venv 创建虚拟环境。

基本用法

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

以下命令将从Python Packaging Index安装最新版本的模块及其依赖项:

python -m pip install SomePackage

注解

对于POSIX用户(包括Mac OS X和Linux用户),本指南中的示例假设使用 virtual environment

对于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仅开始使用Python 3.4捆绑 pip。对于早期版本,pip 需要按照“Python包装用户指南”中所述进行“引导”。

...只为当前用户安装软件包?

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

...安装科学的Python包?

一些科学的Python包有复杂的二进制依赖,目前不容易直接使用 pip 安装。在这个时间点,用户通常会更容易通过 其他方式 安装这些软件包,而不是尝试使用 pip 安装它们。

...使用并行安装的多个版本的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 文件)也可以帮助获得其他二进制扩展而不需要在本地构建它们。