Live data from Hacker News

Pipenv: Python Dev Workflow for Humans

pipenv.pypa.io

31–40 of 64 posts

Re: Pipenv: Python Dev Workflow for Humans

#31

EW. Avoid. For the tenth time in these comments, use poetry. It's a real shame PyPA endorsed this to be honest, I hope that can be reversed at some point in the future.

Poetry is basically perfect, it does what it says and has no surprises.

Well, except one thing: If I do `poetry update `, it starts upgrading other packages as well. I'm not sure what that's about...

Re: Pipenv: Python Dev Workflow for Humans

#33
post #16

Earlier quoted context omitted.

Isn’t this what pip freeze is for?

pip freeze only pins the version of direct, not transitive dependencies. Meaning you don't get deterministic builds.

What do you mean? If you run pip freeze inside a venv it will print every user-installed module and their dependencies. When installing them in a new venv as a requirements file, you end up with the exact same set of modules.

Re: Pipenv: Python Dev Workflow for Humans

#34
Seeing all the comments in this thread that people have had bad experiences with pipenv, this contrasts with my own experience which has been pretty good. How has pipenv failed for everyone?

Gonna take a look at poetry, but would love to hear what problems people have had with pipenv?

Re: Pipenv: Python Dev Workflow for Humans

#35
post #11
post #2

What does this tool provide over an in-project .venv/ directory created by venv and populated by pip from an etc/pip/requirement.txt file containing all the packages by version? There seems to be a lot of activity in this area for a seemingly solved problem. Having solved it, people appear to wish to expand the problem to something bigger (such as multiple interpreter versions, for example) I believe the most-common…

It is a solved problem for other languages. Pip has soooo many issues. The biggest IMO is pip doesn't provide a way to pin indirect dependencies, so there is no good way to ensure that other people working on a project are also using the same dependency versions. You can do it with extra tooling of course - and that's what poetry and pipenv do.

I just so wish that Python tooling would be better, in large part pip is at fault here. If there was no conda I probably wouldn't even touch Python as things look very bleak especially if you need to run anything across different operating systems.

Re: Pipenv: Python Dev Workflow for Humans

#36
post #33

Earlier quoted context omitted.

pip freeze only pins the version of direct, not transitive dependencies. Meaning you don't get deterministic builds.

What do you mean? If you run pip freeze inside a venv it will print every user-installed module and their dependencies. When installing them in a new venv as a requirements file, you end up with the exact same set of modules.

Agree. Works fine for me exactly as you describe. I don't understand why people furiously want more than this for the common case. (Choose python version, create .venv/ directory, install packages, use installed .venv/ and do work.)

Re: Pipenv: Python Dev Workflow for Humans

#38

There wasn't a full release for a year and it broke my pip on Ubuntu 18.04 as I recall - literally it stopped pip from working after I installed it (can't remember why). Avoid.

I had also the terrible misfortune of trying it on Ubuntu, when dependencies were screwed there were no way to fix it even manually, it was like adding insult to the injury that is pip itself.

Re: Pipenv: Python Dev Workflow for Humans

#39
post #11
post #2

What does this tool provide over an in-project .venv/ directory created by venv and populated by pip from an etc/pip/requirement.txt file containing all the packages by version? There seems to be a lot of activity in this area for a seemingly solved problem. Having solved it, people appear to wish to expand the problem to something bigger (such as multiple interpreter versions, for example) I believe the most-common…

It is a solved problem for other languages. Pip has soooo many issues. The biggest IMO is pip doesn't provide a way to pin indirect dependencies, so there is no good way to ensure that other people working on a project are also using the same dependency versions. You can do it with extra tooling of course - and that's what poetry and pipenv do.

I thought `pip freeze > requirements.txt` would give you a list of all dependecies, even indirect ones. Am I missing something?

Re: Pipenv: Python Dev Workflow for Humans

#40

EW. Avoid. For the tenth time in these comments, use poetry. It's a real shame PyPA endorsed this to be honest, I hope that can be reversed at some point in the future.

Poetry is basically perfect, it does what it says and has no surprises. Well, except one thing: If I do `poetry update `, it starts upgrading other packages as well. I'm not sure what that's about...

As long as you install it correctly, which can be difficult on systems where python2 is the default.
Post reply on HN