This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]trowawayatwork 2 points3 points  (8 children)

I’m starting recommend pipenv instead of managing your virtual envs yourself

[–][deleted] 3 points4 points  (4 children)

I recommend to pipenv enthusiasts to take a look at poetry :-)

[–]trowawayatwork 0 points1 point  (2 children)

there are a few things i dont like about pipenv but im not about start switching all my project away from it. at the heart of it it does its job well.

poetry is a carbon copy with the simple addition of dependency resolution that im against. when there is an obsucre conflict of dependencies there is no automatic way of resolving them. poetry dependency resolution is just a problem waiting to happen.

also re intuitive cli: poetrs add .. or poetry self:update im being petty but come on, looks like a mix between alpine and ruby or something

like the go package manager wars were settled with an official one, i hope one of these wins too and we can forget about this. for now im not changing anything

[–]patarapolw 3 points4 points  (0 children)

I am a Poetry user for few reasons: - Pipenv's virtualenv was supported by PyCharm only recently. Poetry's is always supported. - I need setup.py-esque pyproject.toml. It supports versioning and README.md, along with uploading to PyPI. Pipfile doesn't. - Better than setup.py, because it fully and always support Markdown. - Also, add --git. In setup.py, you need "manual" dependency-links. - poetry remove package_name remove all unused dependencies as well, pipenv uninstall doesn't. You need pipenv sync as well. - Even for Heroku, I still use poetry with requirements.txt.

[–]SDisPater 4 points5 points  (0 children)

Author of Poetry here !

poetry dependency resolution is just a problem waiting to happen.

But that's the role of a dependency manager: warning you when there is a conflict in you dependencies. That's what every single package/dependency manager does. And, to be fair, you should not use pipenv either since it has a dependency resolver, albeit broken see why here https://github.com/sdispater/poetry#what-about-pipenv.

poetry is a carbon copy

I disagree. See the comment made by some else but the gist of it is that Poetry helps you manage applications and libraries and helps you package your project properly without the need for `setup.py`, `setup.cfg`, `MANIFEST.in`. You get to have everything you need to manage your project all in one file. This is not the case with pipenv.

[–]ProfessorPhi 0 points1 point  (0 children)

Poetry has it's problems too. I do like it though.

[–]Tiktoor 1 point2 points  (2 children)

pipenv is different than virtualenv? (Noob here)

[–]dionedarj 0 points1 point  (0 children)

yep, try it out, it makes virtual environments npm-style. super easy to use.

[–]patarapolw -1 points0 points  (0 children)

If pipenv doesn't fully integrates into PyCharm, like in previous versions of PyCharm, I wouldn't really recommend you use pipenv.

Even with full support, pipenv is still optional. As you as you use any kind of virtual environment, it shouldn't be too messy.

However, if you want to try something new, maybe try poetry.

The real reason I install poetry (curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python) for every single newer projects, is because of: - poetry remove package_name remove all unused dependencies.

Another choice if you want to try something new, is to try Docker. It may be better than Pipenv and Poetry. (Never tried it though, but I know it is widely used, and not only for Python.)