TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Thoughts on upper bounds for Python dependencies – conda-forge vs. PyPI

2 pointsby droelfover 2 years ago

1 comment

PaulHouleover 2 years ago
pip doesn&#x27;t correctly solve dependencies in all situations, that&#x27;s a problem that needs to be fixed before anything else. The last thing we need is another almost-right-but-really-broken solution like conda. People are coming to the conclusion that &quot;python sucks&quot; and moving on to other languages because the python community has refused to look objectively at the package management situation.<p>Completely successful package management systems like npm and mvn separate dependency metadata from the rest of the package so the package manager can download parts of the dependency graph and find a solution before it downloads any packages. Pip and poetry on the other hand fail because to install eggs they can have to run the setup.py (run arbitrary Python code!) just to know other dependencies. Pip in particular just starts downloading and installing packages optimistically... If it is lucky it &quot;just works&quot;, if it isn&#x27;t some combination of packages it installed are incompatible with the next one you want to install and you&#x27;re stuck.<p>If you give up on eggs I think you can make a package manager that works like maven because you can get the deps out of a wheel with at most three http range requests. Eggs are close to extinct, although a sophisticated user who needs an egg or two for a project could build a wheel from it and point the package manager at it.<p>On one level I like the idea of looking up what symbols a package uses and this might be good for an analysis tool, but for a package management tool that you&#x27;re going to run over, over, and over again I think it the road to make something worse than pip, not better.<p>(One thing I&#x27;d like to see that would further make conda obsolete is some ability to override dependencies, that is, say that &quot;numpy-mkl&quot; is a substitute for &quot;numpy&quot; and with such a capability people could tell the system to extend an upper bound from what it would be otherwise.)