PEP 582 - Python local packages directory

The PEP now shows the appropriate status.


The language in the article is…

After a long debate on the forum, steering council member and Python 3.12 release manager Thomas Wouters communicated the decision


I understand what you are saying, but I disagree with the statement

adding yet another way for dependencies to get located

Yes, it is another way, and it does have serious risk of being yet another standard.

But the packaging system is a mess, and the way PEP 582 handles this is just better. Virtual environments are a mess. Yes, it will take forever for them to go away. But that shouldn’t prevent us from doing the hard work of slowly removing them.

In production, everyone uses Docker images to avoid this whole mess. I feel like part of the reason Python has had such success in the last decade is because of containers. Containers allow people to write Python code and avoid the mess that is virtual environments. How about we let folks work with Python code and avoid virtual environments who aren’t throwing everything into containers?

I feel like this is painful work, but too necessary to ignore.


I disagree with the assertion that “In production, everyone uses
Docker images to avoid this whole mess.”

In production, I have servers with Python applications installed
from distribution packages, I have Python applications installed in
venvs with entrypoints symlinked in /usr/local/bin, I even have
Python applications installed in venvs inside containers in some

I work in a community of hundreds of projects with collectively
thousands of transitive dependencies, and the developers manage to
maintain interoperability and global coinstallability through
consistent use of a cross-project continuous integration system,
with the goal of making packaging into distributions like Debian and
RHEL easier.

I don’t think venvs are the terribad hack lots of people want to tar
them as, and you can absolutely do Python applications in production
without containers, but those are also not the only two options.


The PEP has been rejected, drive-by comments restating things from earlier in the thread aren’t going to change that. Closing as this topic seems unlikely to go in a constructive direction at this point.