5 motivi per passare a uv come gestore di pacchetti python
Fino a qualche settimana fa utilizzavo il classico workflow pyenv, venv e pip per gestire ambienti virtuali con versioni specifiche di python e per gestire i pacchetti.
Ho scoperto e iniziato ad usare per tutti i miei progetti uv, gestore di pacchetti sviluppato da Astral in Rust.
Le caratteristiche principali sono:
- velocità: installazione e risoluzione delle dipendenze davvero rapide, dalle 10 alle 100 volte più veloce di pip
- gestione semplificata delle versioni di python: con uv python install 3.12 scarica e gestisce interpreti senza pyenv o installazioni di sistema
- cache globale condivisa: i pacchetti vengono memorizzati una volta sola e collegati tra i progetti tramite hardlink o copy-on-write, risparmiando tempo e spazio
- distribuzione tramite binario: zero dipendenze da Python preinstallato
- compatibilità con standard: lavora con pyproject.toml per integrarsi con i progetti esistenti
Consigli utili
Crea un nuovo progetto eseguendo uv init che crea un file pyproject.toml e usa uv add PACCHETTO per aggiungere una dipendenza, aggiornando automaticamente uv.lock. Il virtualenv .venv/ viene creato da uv sync. Se gestisci dipendenze per lo sviluppo usa aggiungendo il flag –dev uv add –dev.
In sostanza tempi di CI e setup dei nuovi ambienti più rapidi; lockfile per ambienti riproducibili e comandi semplici per installazione e dipendenze.