DEV Community

Discussion on: Your First Guide to Getting Started with “pipenv”

Collapse
 
dbanty profile image
Dylan Anthony

You should! Great post by the way, you should totally do posts on some more advanced usages as you try it. Information tends to be scattered on the topic and dependency management is important!

Thread Thread
 
rhymes profile image
rhymes

Which issues you found with Poetry? There are so many dependency managers out there. I settled with Pipenv for now because it's better than nothing but the issues you listed are not news to me.

Getting dependency management right in Python seems quite an ordeal!

Thread Thread
 
dbanty profile image
Dylan Anthony

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.

Thread Thread
 
rhymes profile image
rhymes

Got it! I'l keep an eye on it for when it matures :D Please write the post!

Thread Thread
 
yukinagae profile image
Yuki Nagae

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 :(

Thread Thread
 
dbanty profile image
Dylan Anthony

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.

Thread Thread
 
rhymes profile image
rhymes

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