# 28.1. `distutils` - 构建和安装Python模块

`distutils`包为在Python安装中构建和安装其他模块提供支持。新模块可以是100％的Python，或者可以是用C编写的扩展模块，或者可以是Python包的容器，其包括在Python和C中编码的模块。

大多数Python用户将不是直接使用此模块，而是使用由Python包装管理局维护的交叉版本工具。特别地，setuptools是`distutils`的增强型替代选项，它提供：

- 支持声明项目依赖项
- 用于配置要包括在源版本中的文件的其他机制（包括用于与版本控制系统集成的插件）
- 能够声明项目“入口点”，这可以用作应用程序插件系统的基础
- 在安装时自动生成Windows命令行可执行文件而不需要预构建它们的能力
- 所有支持的Python版本的一致行为

推荐的pip安装程序将使用`setuptools`运行所有`setup.py`脚本，即使脚本本身只导入`distutils`。有关详细信息，请参阅Python包装用户指南。

为了使包装工具作者和用户更深入地了解当前包装和分发系统的细节，传统的基于`distutils`的用户文档和API参考仍然可用：

- Installing Python Modules (Legacy version)
- Distributing Python Modules (Legacy version)