V

5 motivi per passare a uv come gestore di pacchetti python

· 1 min

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.