PEP 517 是 Python 打包领域的一项标准(Python Enhancement Proposal 517),规定了构建系统(build backend)与安装工具(如 pip)之间的接口,用于从源代码构建 Python 包(例如生成 wheel)。它常与 PEP 518(声明构建依赖)一起出现。
/piː iː piː fɪfˈtiːn ˌsɛvənˈtiːn/
Using PEP 517, pip builds the package in an isolated environment.
使用 PEP 517,pip 会在隔离环境中构建该软件包。
When a project uses a pyproject.toml build backend, enabling PEP 517 ensures the build process follows the standardized hook-based interface instead of legacy setup.py behavior.
当项目使用 pyproject.toml 中声明的构建后端时,启用 PEP 517 可确保构建过程遵循标准化的钩子接口,而不是依赖旧式的 setup.py 行为。
“PEP” 是 Python Enhancement Proposal(Python 增强提案)的缩写,表示对 Python 生态的正式规范提案;“517”是该提案的编号。PEP 517 的核心是把“如何构建包”抽象为一组统一接口(hooks),让不同的构建工具/后端(如 setuptools、flit、poetry-core)能被安装工具以一致方式调用。