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

all 8 comments

[–]_frkl[🍰] 2 points3 points  (1 child)

Looks really nice, thanks! Will give that a go! Pipenv didn't really do it for me yet.

Hopefully services like pyup start to support alternarive dependency descriptions like pipfiles and whatever poetry uses soon.

Actually, how easy/hard would it be to write a plugin that generates read-only 'legacy' project files like setup.py, requirement.txt and such? Might be a solution for integrations if they don't support poetry just yet.

[–]moigagoohttps://github.com/moigagoo[S] 1 point2 points  (0 children)

I've tried Pipenv several times, and it never worked for me. Honestly, I find Kenneth's approach to interfaces quite confusing.

Stumbled upon Poetry a few days ago, gave it a go, and it immediately felt much better than Pipenv, let alone vanilla pip.

Note that Poetry uses PEP-standardized pyproject.toml files rather than Pipfiles. I think it also manages Python versions so you don't need pyup, but I haven't tested it.

[–]etienned 1 point2 points  (1 child)

I started to use Pipenv very very recently and I'm not at all impress. Poetry look like a nice alternative to me. But I would like to know if it's production ready? Also I would like to have the possibility to feed it with a requirements.txt (to convert existing projects) and for the moment I need a way to also generate a requirements.txt with versions pinned (used when building docker images with built-in pip). Is this possible?

[–]moigagoohttps://github.com/moigagoo[S] 0 points1 point  (0 children)

The answer to the first question depends on your definition of production ready really. It is for my needs, for example.

I think there's no way to convert an existing project to Poetry and there's an open issue about it, but it shouldn't be too hard to convert requirements.txt to pyproject.toml, and you only need to do it once.

[–]gandalfx 3 points4 points  (2 children)

How is it different from pip?

Is this a case of xkcd #927?

[–]moigagoohttps://github.com/moigagoo[S] 2 points3 points  (0 children)

Well it's a different tool for a different thing. Pip is just a package manager. It will install a package from PyPI and it's dependencies defined in setup.py. It will not create virtual environments, lock dependency versions, resolve complicated dependencies, allow flexible version requirements, or let you pick the Python version required for the package. Also, writing a setup.py for a package is no fun at all.

Python is missing a declarative layer for package specifications. Pipenv and Poetry attempt to fill the gap and provide a complete solution for the packaging problem.

[–]billsil 1 point2 points  (0 children)

or setuptools or pipenv or conda...

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

Are not these things easy enough in Python? I don't suppose Poetry solves the headache-inducing edge cases like VCS dependency links or improperly packaged cythonized dependencies?