distutils --- 構(gòu)建和安裝 Python 模塊?


distutils 已被棄用并計(jì)劃在 Python 3.12 中移除。 請參閱 有什么新變化 條目了解更多信息。


distutils 包為將待構(gòu)建和安裝的額外的模塊,打包成 Python 安裝包提供支持。新模塊既可以是百分百的純 Python,也可以是用 C 寫的擴(kuò)展模塊,或者可以是一組包含了同時(shí)用 Python 和 C 編碼的 Python 包。

大多數(shù) Python 用戶 不會 想要直接使用這個包,而是使用 Python 包官方維護(hù)的跨版本工具。特別地, setuptools 是一個對于 distutils 的增強(qiáng)選項(xiàng),它能提供:

  • 對聲明項(xiàng)目依賴的支持

  • 額外的用于配置哪些文件包含在源代碼發(fā)布中的機(jī)制(包括與版本控制系統(tǒng)集成需要的插件)

  • 生成項(xiàng)目“進(jìn)入點(diǎn)”的能力,進(jìn)入點(diǎn)可用作應(yīng)用插件系統(tǒng)的基礎(chǔ)

  • 自動在安裝時(shí)間生成 Windows 命令行可執(zhí)行文件的能力,而不是需要預(yù)編譯它們

  • 跨所有受支持的 Python 版本上的一致的表現(xiàn)

推薦的 pip 安裝器用 setuptools 運(yùn)行所有的 setup.py 腳本,即使腳本本身只引了 distutils 包。參考 Python Packaging User Guide  獲得更多信息。

為了打包工具的作者和用戶能更好理解當(dāng)前的打包和分發(fā)系統(tǒng),遺留的基于 distutils 的用戶文檔和 API 參考保持可用: