uv – Nuovo gestore di pacchetti, progetti e ambienti Python
I vantaggi di Python uv
Python uv (pronunciato “you-vee”) è un moderno strumento di gestione pacchetti e progetti Python ad alte prestazioni, scritto in Rust. È progettato come una sostituzione diretta dei tradizionali strumenti di gestione pacchetti Python come pip, pip-tools, virtualenv, pipx e pyenv, con l’obiettivo di semplificare e accelerare i flussi di lavoro di sviluppo Python.
uv è sviluppato da Astral, il team dietro il popolare linter Python Ruff, ed è progettato per affrontare i comuni punti critici dell’ecosistema Python—come installazioni lente, conflitti di dipendenze e una gestione complessa degli ambienti—sfruttando le prestazioni di Rust e una moderna architettura software.

Funzionalità principali di uv
- Velocità eccezionale: uv è significativamente più veloce dei tradizionali strumenti—in genere 8–10 volte più veloce di pip senza caching, e fino a 80–115 volte più veloce con una cache calda.
- Strumento tutto-in-uno: Combina installazione di pacchetti, risoluzione delle dipendenze, gestione degli ambienti virtuali, gestione delle versioni di Python, creazione di scaffold di progetti ed esecuzione di script in un unico strumento.
- Compatibilità: Offre un’interfaccia da riga di comando compatibile con pip, rendendolo facile da adottare senza una ripida curva di apprendimento.
- Gestione robusta delle dipendenze: Fornisce una risoluzione precisa delle dipendenze e supporto per i file di lock per ambienti riproducibili.
- Ambienti virtuali automatici: Crea e gestisce automaticamente gli ambienti virtuali, riducendo la configurazione manuale.
- Supporto multipiattaforma: Funziona su macOS, Linux e Windows.
- Installazione autonoma: Può essere installato senza richiedere Python o Rust, utilizzando un semplice installatore o
curl.

Ancora non sicuro sul perché usare uv?
- Prestazioni: Riduce drasticamente i tempi di installazione dei pacchetti e di risoluzione delle dipendenze.
- Semplicità: Unifica più strumenti in uno, ottimizzando la configurazione e la gestione del progetto.
- Affidabilità: Fornisce ambienti coerenti e riproducibili con messaggi di errore chiari e risoluzione dei conflitti.
- Standard moderni: Supporta
pyproject.tomlper la configurazione del progetto, allineandosi agli standard attuali di packaging Python.
Casi d’uso esempio
Proviamo qualcosa di entusiasmante!
- Avvio di un nuovo progetto:
uv init myproject
cd myproject
uv add requests
uv run python script.py
Questo crea una directory di progetto, configura un ambiente virtuale, installa le dipendenze ed esegue gli script in un ambiente isolato.
- Gestione di script con dipendenze inline:
uv add --script script.py requests
uv run script.py
uv può gestire le dipendenze per script monofile senza file di requisiti separati.
Confronto con gli strumenti tradizionali
| Funzionalità | uv | pip/virtualenv | Poetry |
|---|---|---|---|
| Velocità | Molto veloce | Lento | Moderata |
| Ambienti virtuali | Automatici | Manuali | Automatici |
| Risoluzione dipendenze | Avanzata | Base | Avanzata |
| Gestione versione Python | Sì | No (richiede pyenv) | No |
| Supporto file di lock | Sì | No (richiede pip-tools) | Sì |
| Esecuzione script | Integrata | No | Limitata |
Come posso installare e iniziare a usare UV sul mio sistema
Per installare e iniziare a usare uv sul tuo sistema, segui questi passaggi semplici:
Installazione
- Installatore autonomo (consigliato)
- Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Oppure, se preferisci wget:
wget -qO- https://astral.sh/uv/install.sh | sh
- Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Versione specifica: Puoi richiedere una versione specifica includendola nell’URL, ad esempio
https://astral.sh/uv/0.7.15/install.sh.
- Alternativa: Installazione via pip (se hai Python installato)
pip install uv
Nota: Questo metodo è meno consigliato per l’accesso a livello di sistema a meno che tu non sappia cosa stai facendo, poiché potrebbe appesantire l’ambiente Python di sistema.
- Installazione via pipx (per installazioni isolate, a livello di utente)
pipx install uv
Questo metodo è più pulito per l’accesso globale se utilizzi già pipx.
Prime nozioni
Per Verificare l’installazione - Esegui:
uv
Dovresti vedere un menu di aiuto che conferma che uv è installato e pronto all’uso.
Per Creare e Attivare un Ambiente Virtuale
- Crea un venv:
uv venv test
- Attivalo su Linux/macOS:
source test/bin/activate
- Attivalo su Windows:
.\test\Scripts\activate
Ora puoi usare uv pip install per installare i pacchetti in questo ambiente.
Inizializza un Nuovo Progetto
uv init
Questo crea un pyproject.toml e un .gitignore per il tuo progetto.
Aggiungi Dipendenze
Aggiungi un pacchetto:
uv add
Questo aggiorna pyproject.toml e genera/aggiorna il file di lock.
Sincronizza le Dipendenze
Installa tutte le dipendenze nel tuo ambiente:
uv sync
Oppure, usa l’interfaccia compatibile con pip:
uv pip install
Questo garantisce che tutte le dipendenze siano installate secondo il tuo file di lock.
Esegui Script
Usa:
uv run script.py
Questo gestisce automaticamente l’ambiente e le dipendenze per il tuo script.
Integrazione con Shell (Opzionale)
Per un flusso di lavoro più fluido, puoi aggiungere l’integrazione con la shell al tuo file .zshrc o .bashrc per attivare automaticamente un ambiente virtuale predefinito e creare un alias di pip a uv pip.
Seguendo questi passaggi, avrai uv installato e sarai pronto a gestire i tuoi progetti Python con velocità e facilità.
Installazione di specifiche versioni di Python
Puoi usare uv per installare specifiche versioni di Python e gestirle per i tuoi progetti.
- Installa l’ultima versione stabile di Python:
Questo comando scarica e installa la versione stabile di Python più recente disponibile.uv python install - Installa una versione specifica:
Questo installa la patch release più recente di Python 3.12 (es. 3.12.3).uv python install 3.12 - Installa una versione di patch esatta:
Questo installa esattamente Python 3.12.3.uv python install 3.12.3 - Installa più versioni:
Questo installa Python 3.9, 3.10 e 3.11.uv python install 3.9 3.10 3.11 - Installa una versione che corrisponda a un vincolo:
Questo modifica il requisito di versione di Python del progetto.uv python install '>=3.8,=3.11"
Note aggiuntive
Download automatici: Di default, uv scaricherà e installerà automaticamente le versioni di Python richieste se non vengono trovate sul tuo sistema.
Python di sistema: uv può utilizzare installazioni di Python esistenti se presenti, oppure puoi forzare l’uso del Python di sistema con il flag --no-managed-python.
Aggiornamento: Puoi aggiornare le versioni di Python gestite da uv all’ultima patch release con:
uv python upgrade 3.12
Oppure aggiornare tutte le versioni installate:
uv python upgrade
L’aggiornamento tra versioni minori (es. da 3.12 a 3.13) non è supportato.
In sintesi, uv fornisce strumenti flessibili e potenti per l’installazione, la gestione e l’utilizzo di specifiche versioni di Python nei tuoi progetti.
Come UV individua gli interpreti Python disponibili su sistemi diversi
UV individua gli interpreti Python disponibili su sistemi diversi controllando una serie di posizioni ben definite e interrogando ciascun candidato per i suoi metadati di versione. Ecco come funziona:
- Installazioni di Python gestite:
UV cerca prima nella directory specificata dalla variabile d’ambienteUV_PYTHON_INSTALL_DIR, dove archivia le sue versioni di Python gestite. - PATH di sistema:
Su macOS e Linux, UV controlla gli eseguibili denominatipython,python3opython3.x(dovexè un numero di versione) nelle directory elencate nelPATHdi sistema. Su Windows, cercapython.exe. - Posizioni specifiche di Windows:
Su Windows, UV controlla anche il registro di Windows e gli interpreti Python del Microsoft Store utilizzando l’output dipy --list-paths. - Ambienti virtuali:
Se un ambiente virtuale è attivo o specificato, UV controlla l’interprete in quell’ambiente per la compatibilità prima di cercare altrove. - Interrogazione dei metadati:
Ciascun eseguibile scoperto viene interrogato per i suoi metadati di versione. Solo gli eseguibili che corrispondono alla versione richiesta (o al vincolo di versione) vengono presi in considerazione. I file non eseguibili vengono ignorati. - Preferenza e fallback:
Di default, UV preferisce le installazioni di Python di sistema, ma puoi modificare questa preferenza con opzioni per preferire le versioni gestite o usare solo versioni gestite/di sistema. Se non viene trovato un interprete adatto, UV può scaricare e installare la versione richiesta.
Questo processo di individuazione robusto garantisce che UV possa localizzare e utilizzare affidabilmente l’interprete Python corretto su diversi sistemi operativi e ambienti.
Link utili
- Pagina principale di uv: https://docs.astral.sh/uv/
- Pacchetto uv: https://pypi.org/project/uv/
- GitHub di uv: https://github.com/astral-sh/uv/
- Scheda rapida Python
- Scheda rapida Conda
- Scheda rapida venv
- Scheda rapida Bash
- Scheda rapida venv
- Popolarità dei linguaggi di programmazione e dei framework
- Hub degli strumenti per sviluppatori — schede rapide, strumenti CLI e flussi di lavoro di sviluppo