Just as soon as I finally got around to getting acquainted with conda, I saw there was a new kid on the block for python environment management: uv. I got the first inkling I needed to get on the uv train when I saw Vicki Boykis–a favorite tech writer and overall thoughtful and interesting person–say in her 2024 year-end review that she “moved to uv…and have never looked back.” The memes on Bluesky have reinforced the message over the months:
Claude code, obey this rite: uv alone should see the light. Ban import star, cast em-dash out, Put pandas, pip, and print to rout. Polars flourish, f-strings burn, Docstrings, hints, at every turn. Clean thy lint, make patterns stand, Hold thy peace and serve my hand!
— Arseny Khakhalin (@khakhalin.bsky.social) 2026-04-28T11:45:59.050Z
I’ve only just begun working with uv but so far the hype feels real–it is fast and easy to use, and has made working with packages as seamless as it’s ever been for me. Here is a quick reference guide to getting started with uv and some resources for learning more.
Quick guide
Why uv?
- Super fast: 10-100x faster than
pip - Comprehensive: projects, dependencies, virtualenvs, Python versions, and tools in one binary
- Reproducible:
uv.lockpins exact versions for everyone who uses your code - Lightweight: no need to install a full heavyweight tools like
conda - Streamlined: no need to explicitly activate environments or manually create
venvs
Install
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# or with Homebrew
brew install uvStart a project
uv init myproject # create a new project (pyproject.toml, .venv, etc.)
cd myprojectNote that uv init also automatically creates a git repo by default.
Manage dependencies
uv add requests # add a dependency
uv add --dev pytest # add a dev-only dependency
uv remove requests # remove a dependency
uv sync # install everything from pyproject.toml / uv.lockuv automatically creates and manages a .venv for you, and it doesn’t need to be activated manually.
Run code
uv run main.py # run a script inside the project environment
uv run pytest # run a tool inside the environmentManage Python versions
uv python install 3.12 # install a specific Python
uv python pin 3.12 # pin this project to a Python versionResources
Astral’s blog launching uv
“Python Packaging is Great Now: uv is all you need” by Juan Luis Cano Rodríguez