pip è lento
pip è installato con Python e rimane lo standard de facto, ma ha limiti riconosciuti:
- Download e install seriale, non parallelo
- Resolver lento (backtracking inefficiente)
- No lock file nativo (richiede pip-tools)
- Virtual env separato (venv/virtualenv)
- Python version management separato (pyenv)
UV, rilasciato da Astral il 15 febbraio 2024, risponde unificando tutto in un singolo binario Rust. Licenza Apache 2.0 o MIT dual.
Cosa fa UV
- Package install 10-100x più veloce di pip (parallelismo, cache globale deduplicata)
- Lock file
uv.lockdeterministico - Virtual env gestito internamente
- Python version management —
uv python install 3.12senza pyenv - Script execution —
uv run script.pycrea ambiente temporaneo - Tool management —
uv tool install ruffcome pipx - Compatibilità pip —
uv pip install ...come drop-in per script esistenti
Pyproject.toml
UV supporta nativamente pyproject.toml (PEP 621):
[project]
name = "myapp"
version = "0.1.0"
dependencies = [
"django>=4.2",
"requests>=2.31",
]
[tool.uv]
dev-dependencies = [
"pytest>=7.4",
"ruff",
]
Comando uv sync installa tutto in un ambiente riproducibile.
Adozione
UV è stato accolto rapidissimamente nella community Python del 2024:
- FastAPI, Django, Polars — recommendation in docs
- CI/CD — speed-up drastico di install in pipeline
- Container builds — layer più leggeri e veloci
- Monorepo Python — workspaces nativi
Al 2024-2025 UV rappresenta il successor di fatto di Poetry/pipenv per nuovi progetti, con Poetry che rimane vantaggioso per progetti esistenti e compatibilità transizionale.
Strategia Astral
UV completa la trilogia Astral: Ruff (lint/format) + UV (packaging) + future ty (type check) → intera pipeline dev Python in Rust.
Nel contesto italiano
Adoption molto rapida nei team Python italiani 2024-2025.
Riferimenti: UV (15 febbraio 2024). Astral. Licenza Apache 2.0/MIT. Linguaggio Rust. Drop-in replacement pip + pip-tools + virtualenv + pyenv. Successor proposto di Poetry/pipenv. Pyproject.toml (PEP 621).
