# `distutils` 构建和安装 Python 模块

`distutils` 计划在 Python 3.12 版本中移除，有关详细信息，请参阅 模块的变化 条目。

`distutils` 提供了对于构建和安装 Python 包的支持。新模块可以是由 100%-纯 Python 代码写成的，也可以是用 C 写成的扩展模块，甚至可以同时包括 Python 和 C。

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

- 对声明项目依赖的支持

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

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

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

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

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

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

- 安装Python模块（旧版）

- 分发 Python 模块（遗留版本）