pdm-pep517
A PEP 517 backend for PDM that supports PEP 621 metadata
What it is and what it does
pdm-pep517 is a PEP 517-compliant build backend that integrates with Python's modern packaging standards. It reads project metadata from pyproject.toml in PEP 621 format and generates wheels and source distributions. The package supports dynamic version detection from static files or SCM tags (git/hg), custom build scripts for generating files at build time, and configuration options for controlling package layout, includes/excludes, and platform-specific wheel tags.
You use it by declaring it in your project's build-system section of pyproject.toml, then optionally configuring behavior under [tool.pdm.build]. It handles standard Python packaging workflows without requiring setuptools, though it can integrate with setuptools for C extension builds. The project is actively maintained and production-stable, supporting Python 3.7 through 3.11.
Use it for:
- Build PDM projects or any project using PEP 621 metadata without setuptools or other legacy build tools
- Automatically detect and embed project version from git tags or SCM without hardcoding it in source
- Generate C extensions or other compiled artifacts during the build process via custom build scripts
- Create platform-specific wheels with custom tags for specialized deployment scenarios
- Manage complex package layouts with selective file inclusion/exclusion patterns
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A PEP 517 build backend that reads PEP 621 project metadata from pyproject.toml and converts it to wheel and source distributions, with support for dynamic versioning and custom build scripts.
Yes, if you are building a Python project and want a modern, dependency-free PEP 517 backend. The package is production-stable, actively maintained, and has no runtime dependencies. Note: the project has been renamed to pdm-backend; verify whether that successor is recommended for new projects before committing to pdm-pep517.
Install
pdm-pep517 on PyPI
pip
pip install pdm-pep517uv
uv add pdm-pep517poetry
poetry add pdm-pep517Installing pdm-pep517
Before you install
Low friction installation with no runtime dependencies. Actively maintained as of 2026-08-03 with production-stable status.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions—suitable for any project type.
Quickstart
# In pyproject.toml:
[build-system]
requires = ["pdm-pep517"]
build-backend = "pdm.pep517.api"
[project]
name = "mypackage"
dynamic = ["version"]
[tool.pdm.version]
source = "file"
path = "mypackage/__init__.py"
# Then build with: python -m build
Requires Python 3.7 or later; the build frontend (e.g., python -m build) must be installed separately.
Verify before relying
- Whether pdm-backend (the renamed successor) is recommended for new projects or if pdm-pep517 remains actively supported
- Performance characteristics when building large projects or those with complex custom build scripts
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 1,220 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 275,019/month — #8,182 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pdm_pep517-1.1.4-py3-none-any.whl
Keywords: packaging, PEP 517, build
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
pdm-backendA PEP 517-compliant build backend that reads…
permissive · top 5,000 on PyPI
wheywhey is a PEP 517 build backend that creates…
permissive · top 15,000 on PyPI
wheel-stubA PEP 517 build backend that creates stub…
permissive · top 5,000 on PyPI
buildBuilds Python packages in isolated…
permissive · top 1,000 on PyPI
pdmPDM is a modern Python package and dependency…
unclear · top 5,000 on PyPI
flit-scmflit_scm is a PEP 518 build backend that…
permissive · top 15,000 on PyPI
pyproject-tomlParses and validates Python project metadata…
permissive · top 15,000 on PyPI
pep517Provides subprocess-isolated wrappers around…
permissive · top 5,000 on PyPI
cmeelcmeel is a PEP 517 build backend that packages…
permissive · top 5,000 on PyPI
pyproject-metadataValidates and transforms pyproject.toml…
permissive · top 5,000 on PyPI