Python Packaging Issues
Discussions center on the problems with Python's packaging and dependency management ecosystem, including criticisms of tools like pip, pipenv, poetry, and conda, frequent new alternatives, and comparisons to other languages.
Activity Over Time
Top Contributors
Keywords
Sample Comments
Can someone steelman the python tooling ecosystem for me? Having a new packaging / dependency manager every few years seems excessive.
It's funny how Py has less of this reputation just because the package manager is so broken that you might have a hard time adding so many deps in the first place. (Maybe fixed with uv, but that's relatively new and not default.)
Python is a great language but the packaging/distribution story is not ideal. E.g. pipenv being publicly recommended but then not being updated for almost 2 years, pipenv long lock times making it unusable after your project grows large enough, poetry having pretty cryptic errors with full trace printed in output, c-extensions needing to be built, etc.As soon as your python code needs to be used by others (library or application) things start to get messy and arcane. I will say that if a
https://news.ycombinator.com/item?id=40905891* Python has too many package managers *
I'd hazard a guess that it is because Python is so old. It was literally created in the 80s. Package management, explosion of dependencies, multiple implementations of the interpreter, being added to the base operating system, and all that fancy stuff came after. I remember doing versioning and packaging in C++ in early 2000s, and it being just as annoying but for different reasons.People are trying to fix it, and their are some great packages out there that make it easier. Pyenv, Poetry
Python desperately needs a better packaging solution than pip from Python Software Foundation. Stop all new features until this - the biggest pain point for Python across all expertise levels from newbies to experienced Python programmers - is officially solved. No pipenv, no poetry, no conda, etc from third party devs who sometimes get tired of the pressure [1]. It is immense. Combine all this virtualenv stuff with great dependency management into one tool. In the spirit of Python, there
I find python packages quite easy to work with :) plus they're similar to ruby gems.You create a venv or bundle, list requirements in a text file, then ask it to install things for you.And if you need custom stuff, you can just pip install a .whl file, too.I have yet to encounter a case where it's not working as expected, so my answer would be that python isn't getting fixed because it's not broken.wontfix, works for me
It's mind boggling to me that such a popular, mature, and beloved language has such a terrible package manager. Pip is seemingly broken more times than not. Deploying anything is a nightmare unless you use a virtual environment, and even when you do you still gotta cross your fingers and hope pip doesn't decide to break at some point in the future.
It's painfully archaic compared to languages that have all this sorted out.Pip is a recipe for disaster, indicated by the huge amount of churn in the Python packaging sphere. It's constantly the worst part of my day whenever I pick a Python project up. Conflicting dependencies, non-deterministic installs, etc.I used to cope with this crap fest until I tried Elixir and experienced the beauty of modern package management and build tools. One tool, Mix, that handles task running and
The issue is mostly1) python appeals to a lot of people that work in development-adjacent industries (like AI). These people don’t usually have to care about packaging2) Python has gone through many outdated forms of packaging3) The zen of python seems to have encouraged everyone to install third party libraries for the smallest of tasks (implementing retries, formatting phone numbers, etc). These small packages often have only a few number of maintainers who end up dropping off the map