工具建议¶
如果您熟悉Python的打包和安装,并且只想知道当前推荐的工具,那么这里就是它。
应用程序依赖关系管理¶
使用 Pipenv 在开发Python应用程序时管理库依赖项。见 管理应用程序依赖项 有关使用的详细信息 pipenv
.
考虑其他工具,如 pip 什么时候? pipenv
不符合您的用例。
安装工具建议¶
包装工具建议¶
使用 setuptools 定义项目并创建 Source Distributions . 5 6
使用
bdist_wheel
setuptools 可从 wheel project 创造 wheels . 如果您的项目包含二进制扩展,这尤其有益。
发布平台迁移¶
原始的python包索引实现(以前托管在 pypi.python.org )已逐步淘汰,以支持在 pypi.org .
见 迁移到pypi.org 有关迁移状态以及客户端中要更改的设置的详细信息。
- 1
在某些情况下,您可以选择使用
easy_install
(从 setuptools ,例如,如果需要从 Eggs (哪个PIP不支持)。有关详细的细分,请参见 PIP与简易安装 .- 2
接受 PEP 453 意思是说 pip 在大多数python 3.4或更高版本的安装中,默认情况下都可用。查看 rationale section 从 PEP 453 至于选择PIP的原因。
- 3
get-pip.py 和 virtualenv 安装 wheel 而 ensurepip 和 venv 目前不要。另外,在各种Linux发行版中找到的通用“python-pip”包目前不依赖于“python-wheel”。
- 4
从python 3.4开始,
venv
将使用pip
从而使其成为 virtualenv . 但是,使用 virtualenv 仍然建议需要跨版本一致性的用户使用。- 5
虽然你可以用纯的
distutils
对于许多项目,它不支持定义对其他项目的依赖关系,并且缺少几个方便的实用程序来自动填充由提供的分发元数据。setuptools
. 在标准类库之外,setuptools
还提供了跨不同版本的python更一致的特性集,并且distutils
)的最新版本setuptools
支持中描述的所有现代元数据字段 核心元数据规范 .即使对于选择使用的项目
distutils
当 pip 直接从源代码安装此类项目(而不是从预构建的 wheel 文件),它将使用 setuptools 相反。- 6
distribute (一个安装工具分支)被合并回 setuptools 2013年6月,设置工具成为包装的默认选择。