4 ms·
After lots of experience with many Python package managers, I’ve always found conda to be the best across the board.
by mlthoughts2018 6y ago
After lots of experience with many Python package managers, I’ve always found conda to be the best across the board.
- p1esk 6y agoI have to agree with you here.
- hansvm 6y agoI tried conda on a couple of occasions, but it always took an absurd amount of time for dependency resolution (upwards of a minute on average hardware and smallish projects with a few heavyweight dependencies like numpy). Is that aspect better now?
- disgruntledphd2 6y agoNope, but it's worth it to find out about dependency problems before the installation, rather than after. Conda also handles C/C++ libraries well, which is a must if you're packaging DS/ML code for Python.
- hansvm 6y agoOh, so does Conda proactively download metadata as part of its resolution process (as opposed to, e.g., greedily downloading immediate dependencies and walking that tree, which is what I assume Pip does?)?
- philipov 6y agoIt's still slow. The reason it's slow is because they use a complete SAT solver to do the resolution. So, it's slow, but it's also thorough. It gives some insight into why pip's dependency management is not thorough: they're clearly sacrificing completeness for performance.
- hansvm 6y agoAs another data point, emerge has a noticeable delay (a few seconds, up to 10 or so for deep dep trees), but it does a full resolution and isn't using all cores (or isn't using them well anyway -- total utilization is under 15% while resolution is underway). It's much faster than conda on similar machines. Is conda making a bunch of network calls as part of its resolution process?
- Doxin 6y agoNote that pip has recently gotten a proper version resolver. It's still plenty of fast, but it's also definitely possible to run into degenerate cases for which it will never finish.