So I’m no expert, but I have been a hobbyist C and Rust dev for a while now, and I’ve installed tons of programs from GitHub and whatnot that required manual compilation or other hoops to jump through, but I am constantly befuddled installing python apps. They seem to always need a very specific (often outdated) version of python, require a bunch of venv nonsense, googling gives tons of outdated info that no longer works, and generally seem incredibly not portable. As someone who doesn’t work in python, it seems more obtuse than any other language’s ecosystem. Why is it like this?
I still do the python3 -m venv venv && source venv/bin/activate
How can uv help me be a better person?
And pip install -r requirements.txt
Fuck it, I just use sudo and live with the consequences.
the software equivalent of leaving the dirt on your vegetables to harden your immune system
You’ll see when you start your second project why this doesn’t work.
pyproject.toml
track the dependencies and dev-dependencies you actually care aboutuv.lock
file that contains each and every lib that’s needed.uv sync
anduv run <application>
is pretty much all you need to get goingThank you for explaining so clearly. Point 3 is indeed something I’ve ran into before!
If you’re happy with your solution, that’s great!
uv combines a bunch of tools into one simple, incredibly fast interface, and keeps a lock file up to date with what’s installed in the project right now. Makes docker and collaboration easier. Its main benefit for me is that it minimizes context switching/cognitive load
Ultimately, I encourage you to use what makes sense to you tho :)