You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PEP 518要求将wheel与setuptools列为构建系统依赖?

为什么PEP 518要求将wheel列为构建系统依赖?

PEP 518建议依赖setuptools的Python项目在pyproject.toml的[build-system]部分显式声明wheel为构建依赖,但实际测试中,即使不添加这个依赖,用build或pip工具依然能成功构建wheel包,背后的原因主要有以下几点:

  • 前端工具的隐式依赖补充:build和pip这类常用的构建前端工具,在执行构建wheel的操作时,会自动检测并补充安装wheel依赖,不需要用户在pyproject.toml里显式声明。但PEP 518的核心是定义构建系统运行的最低必要依赖——它要求的是无论使用什么构建前端,都能保证构建流程正常执行,而不是依赖特定工具的额外补全逻辑。

  • 兼容性覆盖:早期版本的setuptools并没有内置生成wheel的能力,必须单独安装wheel包才能完成wheel构建。PEP 518的建议是为了兼容所有版本的setuptools,以及各种可能的构建环境,避免因环境差异导致构建失败。

  • 依赖明确性与可移植性:显式列出wheel能让项目的构建依赖更清晰,消除歧义。如果使用非build/pip的其他构建前端,这类工具可能不会自动补充wheel依赖,此时没有显式声明就会直接构建失败。PEP 518作为规范,要保证项目在任何符合标准的构建环境下都能正常工作,因此要求明确列出所有必要依赖。

简单来说,你测试时的成功是因为所用工具帮你做了额外的依赖处理,但PEP 518的要求是从规范层面确保构建的通用性和可靠性,避免依赖工具的特殊行为。

内容的提问来源于stack exchange,提问作者platypus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 16:02:39