工具建议

如果您熟悉Python的打包和安装,并且只想知道当前推荐的工具,那么这里就是它。

应用程序依赖关系管理

使用 Pipenv 在开发Python应用程序时管理库依赖项。见 管理应用程序依赖项 有关使用的详细信息 pipenv .

考虑其他工具,如 pip 什么时候? pipenv 不符合您的用例。

安装工具建议

  • 使用 pip 安装python packagesPyPI . 1 2 取决于如何 pip 已安装,您可能还需要安装 wheel 以获得车轮缓存的好处。 3

  • 使用 virtualenvvenv 从共享的python安装中隔离特定于应用程序的依赖项。 4

  • 如果您正在寻找完全集成的跨平台软件栈的管理,请考虑:

包装工具建议

发布平台迁移

原始的python包索引实现(以前托管在 pypi.python.org )已逐步淘汰,以支持在 pypi.org .

迁移到pypi.org 有关迁移状态以及客户端中要更改的设置的详细信息。


1

在某些情况下,您可以选择使用 easy_install (从 setuptools ,例如,如果需要从 Eggs (哪个PIP不支持)。有关详细的细分,请参见 PIP与简易安装 .

2

接受 PEP 453 意思是说 pip 在大多数python 3.4或更高版本的安装中,默认情况下都可用。查看 rationale sectionPEP 453 至于选择PIP的原因。

3

get-pip.pyvirtualenv 安装 wheelensurepipvenv 目前不要。另外,在各种Linux发行版中找到的通用“python-pip”包目前不依赖于“python-wheel”。

4

从python 3.4开始, venv 将使用 pip 从而使其成为 virtualenv . 但是,使用 virtualenv 仍然建议需要跨版本一致性的用户使用。

5

虽然你可以用纯的 distutils 对于许多项目,它不支持定义对其他项目的依赖关系,并且缺少几个方便的实用程序来自动填充由提供的分发元数据。 setuptools . 在标准类库之外, setuptools 还提供了跨不同版本的python更一致的特性集,并且 distutils )的最新版本 setuptools 支持中描述的所有现代元数据字段 核心元数据规范 .

即使对于选择使用的项目 distutilspip 直接从源代码安装此类项目(而不是从预构建的 wheel 文件),它将使用 setuptools 相反。

6

distribute (一个安装工具分支)被合并回 setuptools 2013年6月,设置工具成为包装的默认选择。