Skip to content

What is PEP 517/518 compatibility?

PEP 517 and PEP 518 define standard interfaces for Python packaging tools to build and install packages. PEP 517 defines the interface for building packages, and PEP 518 defines the interface for specifying build dependencies.

These PEPs moved Python packaging from a setup.py-centric model to a pyproject.toml-centric model.

PEP 517 creates a standard for Python packages that any packaging tool can adopt. PEP 518 specifies how Python software packages should specify their build dependencies to execute their chosen build system. PEP 518 introduced the pyproject.toml file.

Tools supporting these PEPs include setuptools, flit, poetry, and pdm.

See What is PEP 621 compatibility? to learn how pyproject.toml was extended to support package metadata.

Get Python tooling updates

Subscribe to the newsletter
Last updated on

Please submit corrections and feedback...