Live data from Hacker News

Pipenv: Python Dev Workflow for Humans

pipenv.pypa.io

11–20 of 64 posts

Re: Pipenv: Python Dev Workflow for Humans

#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.

Re: Pipenv: Python Dev Workflow for Humans

#14
post #9
post #4

Have had a lot of really bad experiences with pipenv. Would recommend pip-tools instead.

Yes, pipenv is so frustratingly slow I found it practically unusable. poetry is also a good alternative.

We had a medium size app and it took literally 30 minutes on a MacBook Pro to resolve (not install, just resolve) dependencies. This was a few years ago so perhaps performance improved, but it was abysmal and made it impossible to meet our goals of fast CI/CD.

Re: Pipenv: Python Dev Workflow for Humans

#16
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.

Isn’t this what pip freeze is for?

Re: Pipenv: Python Dev Workflow for Humans

#17

We had many issues with pipenv and migrated all our projects to Poetry, which I would recommend over pipenv for solving this problem.

I like that pipenv also handles virtualenv creation, but I too moved my projects to Poetry after all of the various Pipenv-maintainer fiascos

Re: Pipenv: Python Dev Workflow for Humans

#18
post #17

We had many issues with pipenv and migrated all our projects to Poetry, which I would recommend over pipenv for solving this problem.

I like that pipenv also handles virtualenv creation, but I too moved my projects to Poetry after all of the various Pipenv-maintainer fiascos

Poetry also creates virtualenvs for you I believe

Re: Pipenv: Python Dev Workflow for Humans

#19
post #17

We had many issues with pipenv and migrated all our projects to Poetry, which I would recommend over pipenv for solving this problem.

I like that pipenv also handles virtualenv creation, but I too moved my projects to Poetry after all of the various Pipenv-maintainer fiascos

By default, poetry automatically creates virtualenvs for you. Though you can override that behavior in your local or global poetry config.

Re: Pipenv: Python Dev Workflow for Humans

#20
post #16
post #11

Earlier quoted context omitted.

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.

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.
Post reply on HN