uv is the best thing to happen to the Python ecosystem in a decade – Blog – Dr. Emily L. Hunt
Tradotto e pubblicato automaticamente da Hackerpunk.it
Introduzione
23 ottobre 2025 | Tempo di lettura: 6 minuti Siamo nel 2025. Installare Python, gestire ambienti virtuali e sincronizzare le dipendenze tra colleghi deve essere davvero così difficile? Beh… no! Di recente è uscito un nuovo, brillante strumento chiamato uv che rivoluziona la facilità di installazione e utilizzo di Python. uv è uno strumento gratuito e open source creato da Astral, una piccola startup che negli ultimi anni ha sfornato strumenti per Python (come l'eccellente linter Ruff). uv può: La cosa migliore è che può fare tutto questo meglio di qualsiasi altro strumento, a mio parere. È incredibilmente veloce, scritto in Rust e funziona su quasi tutti i sistemi operativi o piattaforme. uv è semplice da installare. Ci sono diversi modi, ma il più semplice (a mio parere) è questo comando one-liner: per Linux e Mac, è: È quindi possibile accedere a uv con il comando uv. Installare uv non comprometterà nessuna delle tue installazioni Python esistenti: è uno strumento separato, quindi puoi installarlo tranquillamente solo per provarlo. È sempre una buona idea lavorare con ambienti virtuali per qualsiasi progetto Python. Mantiene separati diversi bit di codice e dipendenze e, secondo la mia esperienza, può risparmiarti un sacco di problemi abituarsi a usare gli ambienti virtuali il prima possibile. uv usa naturalmente gli ambienti virtuali, quindi è molto facile iniziare a usarli se inizi a usare uv. uv creerà un ambiente Python per te in base a quanto specificato in un file pyproject.toml nella directory (o nelle directory padre) in cui stai lavorando. I file pyproject.toml sono un formato standard e moderno per specificare le dipendenze per un progetto Python. Un file essenziale potrebbe assomigliare a questo: In sostanza, deve solo specificare quale versione di Python utilizzare e alcune dipendenze. Aggiungere un nome e un numero di versione non è una cattiva idea. (Nota a margine: per i progetti che pubblichi come pacchetti, come nel Python Package Index utilizzato da pip e uv, i file pyproject.toml sono un modo moderno per specificare tutto ciò che ti serve per pubblicare il tuo pacchetto.) Per avviare un nuovo progetto Python con uv, puoi eseguire Which creerà un nuovo progetto per te, con un file pyproject.toml, un file README.md e altri importanti elementi di boilerplate. Esistono molti modi diversi per eseguire questo comando, come uv init –bare (che crea solo un file pyproject.toml), uv init –package (che imposta un nuovo pacchetto Python) e altri. Consiglio di eseguire uv init –help per saperne di più. Una volta inizializzato un progetto, o se hai già un file pyproject.toml nel tuo progetto, è molto facile iniziare a usare uv. Devi solo digitare "do" nella directory in cui si trova il file pyproject.toml. Questo comando (e, in effetti, la maggior parte dei comandi uv, se non l'hai già eseguito) farà quanto segue: In linea di principio, puoi "attivare" questo nuovo ambiente virtuale come qualsiasi tipico ambiente virtuale che potresti aver visto in altri strumenti, ma il modo più "uv-onico" di usare uv è semplicemente anteporre "uv run" a qualsiasi comando. Questo comando seleziona automaticamente l'ambiente virtuale corretto ed esegue il comando con esso. Ad esempio, per eseguire uno script, invece di "uv run" avrà lo stesso effetto. Allo stesso modo, per usare uno "strumento" come Jupyter Lab, puoi semplicemente digitare "do" nella directory del tuo progetto, invece di "attivare" prima l'ambiente e poi eseguire separatamente Jupyter Lab. Puoi sempre modificare manualmente il file pyproject.toml: uv rileverà le modifiche e ricostruirà l'ambiente virtuale del tuo progetto. Ma uv offre anche modi più semplici per aggiungere dipendenze: puoi semplicemente aggiungere un pacchetto, specificando anche i vincoli di versione (come sopra). Questo comando modifica automaticamente il tuo file pyproject.toml. uv add è anche estremamente potente per aggiungere dipendenze remote da git o da altre parti del tuo computer (ma non ne parlerò qui). Infine, penso che una delle cose più utili che uv possa fare sia quella di bloccare una versione specifica di Python per il tuo progetto. In questo modo, il progetto corrente verrebbe bloccato esattamente a Python 3.12.9 per te e per chiunque altro utilizzi uv, il che significa che puoi replicare esattamente la stessa installazione di Python su più macchine. A volte, però, potresti semplicemente voler eseguire uno strumento rapidamente, come usare Ruff per fare il lint del codice da qualche parte, o avviare un server Jupyter Notebook senza un ambiente, o anche solo avviare rapidamente una sessione IPython con pandas installato in modo da poter aprire un file. Il comando uv tool, che ha l'alias abbreviato uvx, rende tutto questo incredibilmente facile. Eseguendo un comando come questo, lo strumento che si desidera utilizzare verrà scaricato automaticamente e verrà eseguito in un ambiente virtuale una tantum. Una volta scaricato lo strumento in precedenza, l'operazione è estremamente rapida grazie al modo in cui uv utilizza le cache. Ci sono molte occasioni in cui potrei volerlo fare: una comune potrebbe essere quella di avviare rapidamente una sessione IPython con pandas installato (usando –with per aggiungere dipendenze) in modo da poter aprire e visualizzare rapidamente un file parquet. Per esempio:
Fonte originale: https://emily.space/posts/251023-uv