Maybe I should do a whole post on my experience with different dependency systems for Python 😅.
The TL;DR is this:
For Python-pure libraries it works great, best solution I've found, but If you have some C-code or something in your lib, it won't work yet (hopefully eventually)
For deploying an app it's a lot trickier, Poetry basically only gives you the option of building a wheel and then installing that in whatever environment you're deploying to. If that works for what you're doing, great! Otherwise you end up having to export a requirements.txt file (Alpha version of Poetry only) to deploy the old fashioned way.
There are future features planned for integrating some deployment options, but they don't exist yet. Poetry is still very young which means it comes with the usual drawbacks of young projects.
Got it! I'l keep an eye on it for when it matures :D Please write the post!
Thanks, your discussion helps me a lot to think of what package manager I should use.
By the way, any thought on anaconda? I've been struggling with using both anaconda and pip, and they messed me up :(
I have limited experience with anaconda. It ended up causing me more trouble than it was worth. I guess all the bundled packages they include are useful for data scientists but they were unnecessary for me.
Personally I use pyenv on Unix-like systems for installing/managing more than one version of Python. If you try out pyenv make sure to have this page open, I’ve needed to run a command from it on every install (particularly on macOS).
On Windows the normal Python installer comes with the handy “py” launcher which has always been good enough for me.
I can’t say I’ve ever missed any package that conda has and I don’t. But again, I’m not a data scientist.
Pyenv works well, I have 4 different versions of Python installed on my Mac, plus the system python plus I think one from brew, never had a conflict. It's Pipenv that's slow sometimes
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.