Chi si avvicina a Python presto si imbatte in un problema comune: come gestire librerie diverse per progetti diversi senza creare confusione? La risposta è: usare gli ambienti virtuali.
In questo articolo** spiegheremo cos’è un ambiente virtuale, come crearlo con lo strumento uv, e vedremo un esempio pratico con la libreria arXiv, che permette di cercare articoli scientifici dal famoso archivio online. Vedremo queste operazioni su Windows, ma su Ubuntu o su MacOs o su una qualsiasi distribuzione Linux le operazioni da fare sono simili.
Cos’è un ambiente virtuale?
Un ambiente virtuale è una copia isolata di Python che contiene i propri pacchetti, separati da quelli installati a livello globale sul sistema.
I vantaggi principali sono:
- evitare conflitti tra versioni di Python e di librerie richieste da progetti diversi;
- mantenere ordinato e riproducibile l’ambiente di lavoro;
- poter condividere facilmente le dipendenze di un progetto con altri.
In pratica, per ogni progetto, si può avere un ambiente isolato in cui c’è installata una versione ben precisa di Python, con solo e soltanto le librerie che servono per quel progetto e nella versione richiesta in quel progetto.
Quando un ambiente virtuale è attivo, ogni comando python
e pip
si riferisce solo a quell’ambiente, non al Python di sistema, quindi le librerie installate riguardano solo l’ambiente virtuale.
Perché usare uv?
Lo strumento uv rende il processo di creazione di ambienti virtuali più veloce e intuitivo.
Con uv
si possono:
- creare e gestire ambienti virtuali;
- installare pacchetti con un’alternativa rapida a
pip
; - eseguire script direttamente dentro un ambiente, anche senza attivarlo manualmente.
Alternative a uv possono essere: usare venv (ambienti virtuali) + pip (installazione pacchetti) oppure utilizzare Anaconda [2] che è una suite che svolge entrambe le funzionalità ma è più complessa ed è indicata soprattutto per applicazioni di data science e machine learning.
Installazione di uv
Per installare uv, basta lanciare uno dei seguenti comandi:
- Su Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Su Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Dopo l’installazione, il comando uv
sarà disponibile nel terminale e quindi il comando con il comando uv --version
è possibile verificare qual è la versione installata.
Creare un ambiente virtuale con uv
A questo punto si può creare un ambiente virtuale:
- Nella cartella del progetto digitare:
uv venv
Questo crea una cartella
.venv
. - Attivare l’ambiente:
- Su Linux/macOS:
source .venv/bin/activate
- Su Windows (PowerShell):
.venv\Scripts\Activate.ps1
- Su Linux/macOS:
- Installare pacchetti richiesti dal progetto, per esempio:
uv pip install arxiv
- Controllare quale Python è in uso:
python -c "import sys; print(sys.executable)"
In questo screenshot si vede come il Python usato nell’ultimo comando sia quello all’interno dell’ambiente virtuale e non quello di sistema.
Il comando per uscire dall’ambiente virtuale è deactivate
.
Cos’è la libreria arXiv?
arXiv [4] è una libreria Python che permette di interrogare arXiv.org [3], un archivio online di articoli scientifici molto usato in matematica, fisica, informatica e altre discipline. Con arXiv
si possono cercare articoli per argomento, filtrare i risultati e scaricare metadati come titolo, autori e link.
Esempio pratico: cercare articoli con arXiv
Con l’ambiente virtuale attivo e la libreria arXiv
installata, apriamo una shell Python e proviamo a cercare, per esempio, tre articoli scientifici che parlino di sistemi RAG, ordinati per rilevanza.
Prima apriamoil prompt con il comando:
python
E poi copiamo e incolliamo questo codice:
import arxiv
client = arxiv.Client()
search = arxiv.Search(
query="RAG systems",
max_results=3,
sort_by=arxiv.SortCriterion.Relevance
)
for result in client.results(search):
print(result.title, "-", result.entry_id)
Dopo aver premuto Invio, otterremo una lista di articoli recenti pertinenti al tema “RAG systems” con i link alle loro pagine su arXiv.
Eseguire la ricerca da script
Ovviamente con il prompt di Python si possono fare delle prove, ma poi sarà necessario scrivere degli script.
Per esempio, possiamo scrivere in un file papers.py
il seguente codice:
import arxiv
client = arxiv.Client()
search = arxiv.Search(
query="RAG systems",
max_results=3,
sort_by=arxiv.SortCriterion.Relevance
)
for result in client.results(search):
print(result.title, "-", result.entry_id)
E poi eseguirlo da PowerShell:
python papers.py
Oppure, anche senza attivare l’ambiente:
uv run python papers.py
Uso di una versione precisa di Python
Quando si crea un ambiente virtuale è anche possibile fare in modo che si usi una versione ben precisa di Python.
Con il comando uv python list
è possibile quali sono le versioni installabili.
Mentre con il comando uv venv --python 3.14
è possibile creare lò’ambiente virtuale specificando la versione di Python da utilizzare.
Salvataggio e riuso dell’ambiente
Una volta installate le librerie di un progetto, posso salvare l’elenco, sempre all’interno dell’ambiente virtuale, con questo comando:
uv pip freeze > requirements.txt
Allo stesso modo, avendo già una cartella di progetto con un file requirements.txt, posso installare tutte le librerie in un ambiente virtuale con questi due comandi:
cd mio-progetto uv venv uv pip install -r requirements.txt
Il file requirements.txt serve per congelare e riprodurre esattamente lo stesso ambiente Python del progetto perché contiene sia le dipendenze dirette (quelle installate esplicitamente) sia quelle indirette (le librerie richieste dai pacchetti installati).
Conclusione
Gli ambienti virtuali sono uno strumento fondamentale per lavorare con Python in modo ordinato e professionale. Con uv
, la loro gestione diventa semplice e veloce. La libreria arXiv
è solo un esempio di come un ambiente virtuale ti permetta di sperimentare con librerie diverse senza rischiare conflitti o “incasinare” il tuo sistema globale.
** Nota: Questo articolo è stato realizzato usando degli LLM con dei prompr specifici. In particolare l’articolo è stato impostato da ChatGPT (GPT-5) e poi è stato rivisto e corretto da Claude Desktop (Sonnet 4). Sono intervenuto nei passaggi intermedi e alla fine per spiegare meglio delle cose e aggiungere degli esempi.
Fonti e riferimenti
- Installing and managing Python with UV sito ufficiale di Astral.
- Anaconda: sito ufficiale.
- Archivio arXiv: articoli scientifici online, Cornell University.
- Libreria Python arxiv.