3 ms·
It's too bad that there are multiple package managers for Python that all have different approaches, but it is nice that there are at least ways around that, as
by jzombie 3y ago
It's too bad that there are multiple package managers for Python that all have different approaches, but it is nice that there are at least ways around that, as you've mentioned (just seems like a lot of complexity to do something that seems like it should be easy; installing/upgrading/removing packages).
- PaulHoule 3y agoWell... It's a slightly more complex problem than you might think it is. For instance, installing "just one more" package might involve changing the dependency which is not compatible with another dependency that was chosen, it might be possible to change that dependency to a compatible version, but half-baked tools like "pip" frequently die in this situation. Python's problem has been that the community has been too tolerant of solutions that are 90% correct, confusing that with "has 90% of the features somebody might want". There's nothing more time-consuming and expensive than working with code that is incorrect... I mean, the value of a sort routine that works 90% of the time is not 90% of the value of one that works all the time, but 0%. To save 15 minutes of thinking, some people will spend 15 years pushing a bubble around under a rug. A lot of people are really disgusted with Python because of these kind of problems, in fact the place where we were struggling with Python builds didn't share my faith that the problems could be solved and gave up on the project. Like this quote https://www.npr.org/sections/itsallpolitics/2013/10/28/241295755/a-churchill-quote-that-u-s-politicians-will-never-surrender https://www.npr.org/sections/itsallpolitics/2013/10/28/24129... however, Python really does do the right thing in the end and I'm quite excited that pypi is now publishing the dependency lists separate from the rest of the wheel because that's a key item for a correct solver because you really want all of that info to make the right decision. Back in the Datalogue era I had found that you can fake this because wheels are really ZIP files and you can read a file inside a ZIP file with at most three partial http requests. Similarly you really have to stamp out eggs because you can't know what they depend on without running the setup.py. Given that the foundational changes have been made it is just a matter of time before we see a package solver for Python that is 100% correct like the solver for Maven.