Hacker News new | ask | show | jobs
by kissgyorgy 2214 days ago
> Pipenv or poetry?

If you used pipenv for a complex project with huge dependency tree, or used it for a long time, you definitely run into a blocker issue with it. That is the worst package manager of all, and probably the reason why Python has such a bad reputation in this area. It's because it's fundamentals are terrible.

Just go with Poetry. It's very stable, easy to use, has a superior dependency resolver and way faster than Pipenv.

4 comments

Am I misunderstanding Poetry? Because it seems to me more suited as something for packaging your python code up ready to be pushed to Pypi? As in, starting up a project creates an init.py, and a python file referencing distutils: neither of which I need or want to do if I'm writing an app to go into a docker container.
The first use case is actually handling project dependencies. If I remember correctly, it couldn't build packages at the first time, so the "build" subcommand was introduced only later. It's the same type of package manager (with lock file) as other languages already had like Cargo, Bundler or NPM.
Pipenv has had a couple releases recently, but I've had an easier time with Poetry. Poetry is almost always[0] faster than Pipenv, and I find its commands more intuitive.

I've been meaning to take another look at Pipenv, but the huge pause without a release makes me nervous that it could happen again.

[0] https://johnfraney.ca/posts/2019/11/19/pipenv-poetry-benchma...

Agreed. A large part of Pipenv's raison d'ĂȘtre is resolving dependencies. Yet it seems to install packages in random order. This sometimes fails, so it retries failures at the end.

We actually used this in production before switching to poetry.

The last time I tried poetry, it had dependency problems. The maintainers acknowledged it and resolved it with a patch, but somehow it was not working. This was at poetry 1.0.0b3