Astral UV
UV is an extremely fast Python package installer and resolver written in Rust.
Quick Reference
| Task | Command |
|---|---|
| Create venv | uv venv |
| Install package | uv pip install <pkg> |
| Add dependency | uv add <pkg> |
| Run script | uv run <script.py> |
| Sync dependencies | uv sync |
| Init project | uv init |
Project Management
Initialize a new project:
bash
uv init my-project cd my-project
Add dependencies (updates pyproject.toml automatically):
bash
uv add requests httpx uv add --dev pytest ruff
Sync environment with lockfile:
bash
uv sync
Running Code
Run scripts without manual venv activation:
bash
uv run python script.py uv run pytest uv run ruff check .
Run with inline dependencies:
bash
uv run --with requests script.py
Virtual Environments
bash
uv venv # Create .venv uv venv --python 3.12 # Specific Python version
pip Interface
Drop-in pip replacement (10-100x faster):
bash
uv pip install requests uv pip install -r requirements.txt uv pip compile requirements.in -o requirements.txt
Python Version Management
bash
uv python install 3.12 # Install Python version uv python list # Show available versions uv python pin 3.12 # Pin version for project
Best Practices
- •Prefer
uv addoveruv pip installfor project dependencies - •Use
uv runinstead of activating venvs manually - •Commit
uv.lockto version control - •Use
uv sync --frozenin CI for reproducible builds - •Add dev dependencies with
uv add --dev