Python Packaging User Guide
by Tim Hopper
The Python Packaging User Guide (PyPUG) is the official documentation site for packaging, publishing, and installing Python projects. It is published at packaging.python.org and maintained by the Python Packaging Authority (PyPA).
Note
Since April 2026, the guide falls under the authority of the Python Packaging Council established by PEP 772. The source lives at github.com/pypa/packaging.python.org and accepts community pull requests.
What the guide covers
- Tutorials and how-to guides built around PyPA-maintained tools: pip, build, twine, setuptools, virtualenv, and pipx
- The packaging specifications index, including the PEP 517 build-system interface, PEP 621 project metadata, PEP 503 simple repository API, PEP 735 dependency groups, and PEP 751
pylock.tomllockfiles - Reference material for pyproject.toml and the wheel and sdist distribution formats
- Guidance on uploading to PyPI and configuring trusted publishing
What the guide does not cover
- Workflow documentation for non-PyPA tools such as uv, Poetry, PDM, Hatch, or Pixi. Those tools maintain their own documentation
- Editorial recommendations for which tool to choose. The guide lists tool recommendations but is conservative by design and slow to take strong positions on newer tools
- Conda-family tooling and the scientific-Python distribution stack (conda, conda-forge, Pixi), which operate outside the PyPA ecosystem
For background on why the guide reads the way it does, see Why doesn’t the authoritative Python packaging guide mention the best thing that’s happened to Python packaging?.
Learn More
- Python Packaging User Guide
- PyPUG source repository on GitHub
- Python Packaging Authority (handbook explainer)
- What is PEP 772? (Packaging Council governance)
- Packaging specifications index (the canonical list of standards)
Last updated on