News for hackers. Stuff that matters.
Re:Pipenv: Python Dev Workflow for Humans by Macha on Wednesday February 03, 2021 @03:51PM (#26018929)
The consensus among non-Python developers is that that is not good enough.

The problems are:

requirements.txt is way too flexible, so users want a lock file to freeze stuff in place.

You can use pip freeze to generate a sort-of-lockfile but it's more manual than tools like Cargo/npm/bundler which do it automatically. And more adhoc as to what you call it. Combined with needing to mange venvs and sourcing etc. people want a standard script that just figures out its context from the now standard "explicit requirements"/lockfile setup.

It doesn't handle versioning Python itself, which is expected of it for some reason, even though nobody cares that npm/Cargo/bundler don't version their languages.

Re:Pipenv: Python Dev Workflow for Humans by shadycuz on Wednesday February 03, 2021 @04:00PM (#26019041)
I felt the same way about only needing requirements.txt until I managed a project that needed to be compatible across many versions of python and some of it's dependencies were renamed from one version to another. I highly recommend you take a look at the hypermodern python guide https://cjolowicz.github.io/posts/hypermodern-python-01-setu...
Re:Pipenv: Python Dev Workflow for Humans by mumblemumble on Wednesday February 03, 2021 @04:46PM (#26019577)
Pipenv and poetry help, but, even with them, it's still not good enough. setup.py is a real challenge. Packages being able to execute arbitrary code at install time can make it very difficult to get a truly reproducible python build. Details of how pip (which pipenv and poetry still use) handles packages means that doing anything that even hints of a monorepo is a delicate subject on the best of days.
Re:Pipenv: Python Dev Workflow for Humans by divbzero on Wednesday February 03, 2021 @03:56PM (#26018998)
The lock file shortcoming is better remedied by pip-tools [1] as recommended by a neighboring comment.

[1]: https://github.com/jazzband/pip-tools