TL;DR: uv is an extremely fast Python package manager, written in Rust.
definitely not the real reason for a project like this to exist. Python package management can be nightmarish at times depending on what you’re doing. between barebones requirements.txt
, Poetry, and the different conda
s there’s a ton of fragmentation, and none of them do everything you’d want in an ideal way. above and beyond speed, i think uv
is another attempt at it. but it could just be another classic xkcd moment where now there’s just another standard to deal with
uv
is a drop-in replacement for pip
. There’s no extra standard. It’s pareto better. Honestly the Python community would do the world a favour if the deprecated pip and adopted uv as the official tool, but you can guess how likely that is…
as you might have guessed i haven’t really tried it, but i have been reading about it. that said i have used “drop in replacement” tools like this (we use pnpm
at work), and a drop in replacement is not without quirks. they wouldn’t have made a different tool altogether if it was really a 1:1 replacement. just because the commands are the same doesn’t mean it behaves the same. i.e. i doubt one person on the team could be using uv
while everyone else sticks to pip
they wouldn’t have made a different tool altogether if it was really a 1:1 replacement
Why not? It’s 10x faster.
I think it might have some other new features but you don’t need to use those.
i doubt one person on the team could be using uv while everyone else sticks to pip
This is exactly what we do at work. There’s no way I could convince everyone to switch to uv
so I just switch between them based on an environment variable.
It even supports random stuff like pip install --config-settings editable_mode=compat --editable foo
which is required for static tooling to work (e.g. Pyright).