28.1. distutils — 构建和安装 Python 模块


distutils 包为将待构建和安装的额外的模块,打包成 Python 安装包提供支持。新模块既可以是百分百的纯 Python,也可以是用 C 写的扩展模块,或者可以是一组包含了同时用 Python 和 C 编码的 Python 包。

大多数 Python 用户 不会 想要直接使用这个包,而是使用 Python 包官方维护的跨版本工具。特别地, setuptools 是一个对于提供的 distutils 的增强选项。

  • 对声明项目依赖的支持。

  • 额外的用于配置哪些文件包含在源代码发布中的装置(包括与版本控制系统集成需要的插件)

  • 生成项目“进入点”的能力,进入点可用作应用插件系统的基础

  • 自动在安装时间生成 Windows 命令行可执行文件的能力,而不是需要预编译它们

  • 跨所有受支持的 Python 版本上的一致的表现

推荐的 pip 安装器用 setuptools 运行所有的 setup.py 脚本,即使脚本本身只引了 distutils 包。参考 Python Packaging User Guide 获得更多信息。

为了打包工具的作者和用户能更好理解当前的打包和分发系统,遗留的基于 distutils 的用户文档和 API 参考保持可用: