Hacker News new | past | comments | ask | show | jobs | submit login

Curious to hear other's experiences with pipenv vs poetry. Has anyone made the switch?



I've used both and recommend Poetry. It's got a larger feature set (it can be used to manage packages _and_ publish packages), it's faster, and it's more actively developed (measured by releases). Pipenv's last release was 2018-11-26, and Poetry has been publishing pre-releases as recently as three days ago to prepare for v1.0.0.

I did a quick comparison here[0], and I'm planning to do an update with the latest version of Poetry.

[0] https://johnfraney.ca/posts/2019/03/06/pipenv-poetry-benchma...


Similar to the OP, I found pipenv to be quite unstable. At the time (about a year ago) it was really more interesting beta software than the production-quality software it was advertised as. It was also quite a bit slower than pip.

But what really pushed me away is that installing or upgrading any single package upgraded all dependencies, with no way to disable this behavior. (I believe you can now.) A package manager should help me manage change (and thereby risk), not prevent me from doing so.

Poetry is probably the best of the all-in-one solutions. It does its job well but I've found the documentation lacking.

In the end, I've settled on pyenv-virtualenv to manage my environments and pip-tools to manage dependencies. It's simple and meets my needs.


Pipenv has been nearly completely broken for a year without a release. Installing from scratch rarely works without providing a full path to the python you want to reference.

Now that poetry also manages virtual environments it’s far and away the better choice.

Caveat - Heroku doesn’t understand pyproject files yet, so no native poetry integration. Heroku are working on this.


I switched from pipenv to poetry over 1 year ago. I love it!

The main reasoning was so that I could easily build and publish packages to a private repository and then easily import packages from both pypi and the private repository.

Happy to answer more questions.


I'd like to use poetry however ran into https://github.com/sdispater/poetry/issues/1554

We have a custom pypi server and need all requests to go through it, however haven't figured a way to make poetry always use our index server for all modules instead of pypi.org


Add a second source and it will prioritise that over pypi.

  [[tool.poetry.source]]
  name = "my-repo-name"
  url = "https://myrepo.url/"


Poetry is amazing, if only for the ability to separate dev and build dependencies. Maybe pipenv does this, but I couldn't get it working well enough to find out.

I've flagged trying to manage python versions on my machine and just develop inside docker containers now (Thanks to VSCode). Using tightly versioned python base images


I chose to not use either after trying both. Nether solves understanding `setup.py` (they are just indirections on it). Of the two, poetry seemed more comprehensive and stable across releases. There’s a small cognitive load of knowing a couple of Twine commands if you don’t use either.


Switched to poetry and couldn't be happier. From my experience, poetry wins hands down. It managed to replace flit, remove duplicate dependencies, and maintain stability across machines. All while using the standard pyproject.toml configuration file.


Pipenv cannot publish to a PyPi repo by itself. I chose Poetry because it’s an all-around tool


I use pipenv currently with Docker and have had no issues.

That said, all I want is for a unified standard to emerge, this is getting a little ridiculous...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: