Overview
uv (from Astral, the Ruff team) collapses Python tooling into one fast binary: environment creation, dependency resolution, Python version management, and lockfiles. Resolution that took pip minutes takes uv seconds, and uv.lock pins your exact environment for anyone who clones the repo.
Why researchers use it
- Speed you can feel — dependency installs in seconds, not minutes
- Lockfile by default — uv.lock makes ‘pip install worked yesterday’ extinct
- One tool — replaces pip, venv, pipx, pyenv, and poetry for most projects
Getting started
- Install with the one-line installer from the docs (no Python needed first — uv can install Python too).
- In a project: uv init, then uv add numpy pandas — environment and lockfile appear automatically.
- Collaborators run uv sync and get your exact environment.
The honest review
Strengths. The rare tool that is simply better along every axis for pure-Python work: faster, stricter, simpler mental model, and drop-in pip compatibility (uv pip …) for gradual adoption.
Limitations. Young (expect occasional edge cases), and it does not manage non-Python binaries — CUDA/GDAL-class dependencies still push you to conda or containers.