# Python Packaging User Guide


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](https://packaging.python.org/) and maintained by the [Python Packaging Authority (PyPA)](https://pydevtools.com/handbook/explanation/what-is-pypa.md).

> [!NOTE]
> Since April 2026, the guide falls under the authority of the Python Packaging Council established by [PEP 772](https://pydevtools.com/handbook/explanation/what-is-pep-772.md). The source lives at [github.com/pypa/packaging.python.org](https://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](https://pydevtools.com/handbook/reference/pip.md), [build](https://pydevtools.com/handbook/reference/build.md), [twine](https://pydevtools.com/handbook/reference/twine.md), [setuptools](https://pydevtools.com/handbook/reference/setuptools.md), [virtualenv](https://pydevtools.com/handbook/reference/virtualenv.md), and [pipx](https://pydevtools.com/handbook/reference/pipx.md)
- The packaging specifications index, including the [PEP 517](https://pydevtools.com/handbook/explanation/what-is-pep-517.md) build-system interface, [PEP 621](https://pydevtools.com/handbook/explanation/what-is-pep-621-compatibility.md) project metadata, [PEP 503](https://pydevtools.com/handbook/explanation/what-is-pep-503.md) simple repository API, [PEP 735](https://pydevtools.com/handbook/explanation/what-is-pep-735.md) dependency groups, and [PEP 751](https://pydevtools.com/handbook/explanation/what-is-pep-751.md) `pylock.toml` lockfiles
- Reference material for [pyproject.toml](https://pydevtools.com/handbook/reference/pyproject.toml.md) and the [wheel](https://pydevtools.com/handbook/reference/wheel.md) and sdist distribution formats
- Guidance on uploading to [PyPI](https://pypi.org/) and configuring trusted publishing

## What the guide does not cover

- Workflow documentation for non-PyPA tools such as [uv](https://pydevtools.com/handbook/reference/uv.md), [Poetry](https://pydevtools.com/handbook/reference/poetry.md), [PDM](https://pydevtools.com/handbook/reference/pdm.md), [Hatch](https://pydevtools.com/handbook/reference/hatch.md), or [Pixi](https://pydevtools.com/handbook/reference/pixi.md). Those tools maintain their own documentation
- Editorial recommendations for which tool to choose. The guide lists [tool recommendations](https://packaging.python.org/en/latest/guides/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](https://pydevtools.com/handbook/reference/conda.md), [conda-forge](https://pydevtools.com/handbook/reference/conda-forge.md), [Pixi](https://pydevtools.com/handbook/reference/pixi.md)), 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?](https://pydevtools.com/handbook/explanation/uv-not-in-ppug.md).

## Learn More

- [Python Packaging User Guide](https://packaging.python.org/)
- [PyPUG source repository on GitHub](https://github.com/pypa/packaging.python.org)
- [Python Packaging Authority](https://pydevtools.com/handbook/explanation/what-is-pypa.md) (handbook explainer)
- [What is PEP 772?](https://pydevtools.com/handbook/explanation/what-is-pep-772.md) (Packaging Council governance)
- [Packaging specifications index](https://packaging.python.org/en/latest/specifications/) (the canonical list of standards)
