4 ms·
I've been using Python a lot, both professionally and privately. Been contributing to Cpython. Not sure I like the language. The best dependency manager (Poetr
by petters 6y ago
I've been using Python a lot, both professionally and privately. Been contributing to Cpython.
Not sure I like the language. The best dependency manager (Poetry) is buggy. The default interpreter is slow.
But I love the ecosystem of third party packades. Thank you! Python will be around for a long time.
- kamyarg 6y agoCurious what bugs you have come across with poetry?
- saila 6y agoIn the current version, 1.1.4, if your package has optional dependencies (AKA "extras"), the generated package metadata is incompatible with setuptools (specifically the packaging package, which can't parse the requirement specs generated by poetry), so I've had to stick with 1.0 for now. I've encountered a few issues like this since I started using poetry 0.12.
- kamyarg 6y agoThanks for sharing, indeed that is very bad. Do you know if this bug is already reported?
- petters 6y agoRace conditions in the installer. The parallel installer must be disabled. But generally I like poetry and I am also a contributor (--remove-untracked). Don't want to bash it to much.
- kamyarg 6y agoI also like and use it and have been trying to compare it with pipenv(which we switched from). To be honest it has been nothing but very pleasant to use and I am surprised when people have issues(maybe we have those issues and I am not aware?). I have not had any issues with installer race conditions, did I miss, was lucky or you had a special case it surfaced maybe?
- mlthoughts2018 6y agoAfter 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?
- TameAntelope 6y agoComing from Python into the Node.js/React world, I find myself missing the Python library ecosystem, and as fantastic as NPM is, Poetry was not so far behind it that I generally noticed... Sequelize is an order of magnitude worse than SQLAlchemy, IMO, as the Postgres support seems tacked on, and Sequelize hasn't correctly guessed a single column or table name yet.
- mrbonner 6y agoIn the contrary, I find Poetry is pretty buggy comparing to pipenv. I am a casual Python coder for fun and ran into issues with Poetry following their intro document. With pipenv, I have not encountered any of the issues so far.