Packaging is currently too hard in Python, and while there's effort to improve it, it's still largely focused on the problem of installing. The current approach is to just throw docs and specs at the building part:

Why do we need a damn mountain of docs? Because when building a distribution the user experience is like this:

There are so many things going on in setup.py :

We don't need a goddamn mountain of docs, we need something that's so simple even a monkey could publish a decent distribution on PyPI. But that means cutting down features ...

The perspective problem *

There are lots of improvements made in PEP-376, PEP-345, PEP-425, PEP-427 and PEP-426, but they are all improvements that allow tools like pip to work better. They still don't make my life easier, as a packager - the user of setuptools or distutils.

Don't get me wrong, it's good that we got those but I think there should be some focus on making a simpler packaging tool. An alternative to setuptools/distutils that has less features, more constraints but way easier to use. Sure, anyone can try to make something like that, but if it's not officially sanctioned it's going to have very limited success.

It has been tried before * There have been attempts to replace the unholy duo we have now but alas, the focus was wrong. There have been two directions of improvement: Internals: better architecture to make the build tools more maintainable/extensible/whatever. Distutils2 was the champion of this approach.

Metadata as configuration: the "avoid code" mantra. Move the metadata in a configuration file, and avoid the crazy problems usually happen when you let users put code in setup.py . Distutils2 championed this idea and it lives today through d2to1. However, the way code and data files are collected didn't change. As a packager, you still have to deal with the dozen confusing buttons. d2to1 is not better in this regard. In fact, it's worse because you have to hardcode metadata and there's no automatic discovery for whatever you're trying to package.

The current course * PEP-426 will open up possibilities of custom build systems, something else than setuptools, that could hypothetically solve all sorts of niche problems like C extensions with unusual dependencies.