"Like many others in the Python world, I've adopted " uv ", the do-everything, lightning-fast package manager written in Rust. uv does it all: For people who just want to download and install packages, it replaces pip. For people who want to keep multiple versions of Python on their computer, it replaces pyenv. For people who want to work on multiple projects at the same time using virtual environments, it handles that, too."
"Here's the thing, though: If you're using uv as a replacement for one of these tools or problems, then you're probably using it wrong. Yes, uv is a superset of these tools. But the idea is to sweep many of these things under the rug, thanks to the idea of a uv "project." In many ways, a project in uv allows us to ignore virtual environments, ignore Python versions, and even ignore pip."
"I know this, because I've used uv the wrong way for quite a while. It was so much faster than pip that I started to say uv pip install PACKAGE instead of pip install PACKAGE But actually, that's not quite true - I don't really use virtual environments very much, so I would just install packages on my global Python installation: uv pip install --system PACKAGE Which works! However, this isn't really the way that things are supposed to be done."
uv is a Rust-based, high-performance package manager that replaces pip, pyenv, and virtual environment workflows while supporting development and distribution tasks. uv centers work around a project concept, typically described by pyproject.toml, which encapsulates dependencies, build configuration, and Python runtime selection. Treating uv simply as a faster pip and installing packages on a global interpreter bypasses the project model and can mismanage environments. Projects in uv let users avoid manual virtual environment activation, explicit Python-version switching, and direct pip calls by keeping configuration and dependencies scoped to the project. PEP 518 introduced pyproject.toml and related specifications continue to standardize project metadata.
Read at Reuven Lerner
Unable to calculate read time
Collection
[
|
...
]