Python dependency management has historically been fragmented across multiple tools: pip, pip-tools, pipx, poetry, pyenv, and more. Enter uv - an extremely fast Python package and project manager written in Rust by Astral, the creators of Ruff. It’s designed to be a single tool that replaces the entire Python toolchain.
Why uv?
Blazingly fast: 10-100x faster than pip due to its Rust implementation
All-in-one: Replaces pip, pip-tools, pipx, poetry, pyenv, and virtualenv
Python version management: Install and manage multiple Python versions
Modern project management: Uses standard pyproject.toml for configuration
Reproducible builds: Built-in lockfile support for deterministic installations
Cross-platform: Works on macOS, Linux, and Windows
Installing uv
On macOS and Linux
The recommended way to install uv is using the standalone installer:
Use --locked in CI to ensure exact reproducibility:
uv sync --locked
Quick Reference
Task
Command
Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
Install Python
uv python install 3.12
Create project
uv init my-project
Add dependency
uv add package-name
Add dev dependency
uv add --dev package-name
Remove dependency
uv remove package-name
Sync dependencies
uv sync
Run script
uv run python script.py
Run tool
uvx tool-name
Create venv
uv venv
Lock dependencies
uv lock
Conclusion
uv represents a significant step forward in Python tooling. Its speed, unified approach, and modern features make it an excellent choice for both new projects and migrating existing ones. By adopting uv, you can simplify your Python development workflow while enjoying blazingly fast dependency resolution and installation.
Django 6.0 marks 20 years of Django with major features including background tasks, template partials, built-in CSP support, and a modernized email API.