I have been using pip and venv to do Python forever. I will never use them again.
I have a bunch of little scripts that I wrote to help me do work. I have one to quickly move a downloaded bill into the folder for the client it belongs to. I have one that takes those filed bills and combine them into a monthly report. I have others but they’re probably even less interesting to you. My strategy before had been to create a venv for each one, load it from a requirements file, and point the shebang line at the venv. I know, that makes zero sense if you don’t write Python code. It’s fine.
The problem with that is that after some period of time, the venvs fail. I don’t know why or what happens, but the solution is to delete and rebuild them. It’s annoying.
I just moved most of them to uv in five minutes. It was that easy. The requirements files are gone – uv moved them into the scripts themselves and reads them from there going forward. They’ll be even easier to migrate to a new computer or fresh operating system install.
Even better – Heroku has been yelling at me to move my website (not this one, my work website) to uv. I thought this was going to be hard. This is a Django website that basically manages my business – it’s pretty important that it works.
cd coldants
uv init
uv add -r requirements.txt
That was it. Check in a few new files to Git, remove requirements.txt, redeploy to Heroku. Done. I couldn’t believe it.
Anyway, if you do Python code, I highly recommend you check out uv.