Ideally responses would include size of user base, number of package dependencies, any issues arisen, etc.
Thanks y’all. Needless to say, the most recent pipenv post on the front page has led to more confusion than I’d like to admit.
You should use what is best for you and the only way to find it is to try all of them.
If you find this a mess, it is because it is.
Python dependency management is a mess and it seems it will not get better any time soon, unfortunately.
This is because none of them are good enough.
There is a trend towards Poetry right now, and people seem to like it, but there are also people that complain it is not the right tool for some kind of projects. It deserves a try.
I tested PDM but it follows an different approach that Python community is used to and because of this it does not get the same attention as other tools.
Pipenv was a tool with lots of promises that got aggressively marketed as the "official" way to manage Python dependencies but it failed to delivery its promises and it seems the community moved from it.
We force the use of `virtualenv` so that within our project we can nuke and rebuild the installed dependencies quickly.
There are multiple requirements.txt files, the first one that used for installation installs the pined version of `pip`, and `setuptools`.
After that additional dependencies are installed (separate file).
One of the senior engineers I used to work with wanted me to checkout `pip compile`. It looks useful.
The best balance I've managed is with Linux - distributions bundle up most everything I need as packages, and I'm lucky there's very little requirement for specific versions for what I need
Anything extra I tend to get with pip/--user
Not saying python package management couldn't be better, but I think that a lot of pipenv's hate comes from earlier versions, and is a bit overblown.
I don't know why people are saying it's not going to get better but there is an ongoing effort to actually become better but as with everything it goes through the PEP process which is a slow.
Never had to think about which virtual environment I am using again.