Skip to content

Why Doesn't the Authoritative Python Packaging Guide Mention the Best Thing that's Happened to Python Packaging?

uv is the most widely adopted new Python tool in years, yet the Python Packaging User Guide (PPUG) makes no mention of it.

What does uv replace?

uv delivers 10-100x faster package operations than pip while consolidating functionality previously spread across pip-tools, virtualenv, pyenv, and more into a single tool. Since its introduction in early 2024, it has become the default recommendation in many Python teams and communities.

Who controls packaging.python.org?

The Python Packaging Authority (PyPA) started in 2011 as a working group focused on maintaining specific packaging tools, particularly pip and virtualenv. Its name suggests broad authority over Python packaging, but its scope has always been narrower.

PEP 609, the PyPA governance PEP, formalized this model in 2019: the PyPA maintains specific projects rather than governing all Python packaging tools. The PyPA explicitly states it’s

specifically not focus at first on adding something to the standard library as our solution to our packaging problems. Adding something to the standard library is hard, and once it’s added, it’s a slow process to change it. Most of the current effort is largely focused on 3rd party projects.

The PyPA membership is a collection of projects: pip, setuptools, wheel, the Python Package Index (PyPI), and others.

How did Python packaging get here?

Python’s packaging story is a pattern of community tools becoming de facto standards without formal adoption:

  1. distutils, added to the standard library in 2000, proved too limited for real-world use
  2. setuptools replaced it as the de facto build tool without standard library inclusion
  3. pip became the standard installer through the same informal path

In 2017-2018, PEP 517, the build-system interface standard, and PEP 518, the build-system requirements specification, broke the setuptools monopoly by defining interfaces that allowed alternative build systems. This opened the way for Hatch, Flit, Poetry, PDM, and eventually uv. None were designated “official” or distributed with CPython.

Why doesn’t the guide mention uv?

Since 2013, the PyPA has maintained the PPUG. The guide covers PyPA member projects rather than the full ecosystem of packaging tools. As a non-PyPA project, uv falls outside its scope, regardless of adoption or technical merit.

The confusing part is the PyPA’s description of this guide as the “authoritative resource on how to package, publish, and install Python projects using current tools.” A more accurate description: the authoritative resource for tools under the PyPA umbrella.

What holds the ecosystem together?

Python’s packaging ecosystem is held together by standards (PEPs) rather than official tools. The core developers have avoided blessing any particular tool, focusing instead on interoperability specifications. The PPUG provides useful guidance for PyPA tools, but it is one perspective on a broader ecosystem. The real authority in Python packaging is the set of standards that let tools like uv, pip, and Poetry all work with the same packages and metadata.

Learn More

Last updated on