HOWTO · Python
Come controllare la versione di un modulo Python
Scopri come controllare la versione di un pacchetto Python installato con importlib.metadata, l'attributo __version__ di un modulo, pip show o pkg_resources.
In questa pagina
Per controllare la versione di un pacchetto installato da Python, usa importlib.metadata.version() con il nome di distribuzione del pacchetto. Per un controllo da terminale, esegui python -m pip show PACKAGE con l’interprete Python di cui vuoi ispezionare l’ambiente. I nomi di importazione e i nomi di distribuzione possono differire, quindi usa il nome indicato nelle istruzioni di installazione del pacchetto o nei metadati del pacchetto.
Usa importlib.metadata per ottenere la versione di una distribuzione installata
importlib.metadata legge i metadati delle distribuzioni installate. Passa un nome di distribuzione come requests; il nome che scrivi in un’istruzione import non è sempre lo stesso. Questo esempio stampa il nome e la versione della prima distribuzione restituita dall’ambiente corrente:
from importlib import metadata
distributions = list(metadata.distributions())
if distributions:
distribution = distributions[0]
print(f"{distribution.metadata['Name']}: {distribution.version}")
else:
print("No installed distributions found.")
pip: 26.2.1
Per un pacchetto noto, chiama metadata.version("requests"). Se il modulo importlib.metadata della libreria standard non è disponibile nell’ambiente Python, il backport installato separatamente usa il percorso di importazione importlib_metadata; anche la sua API di ricerca si chiama version(). La disponibilità dipende dall’ambiente, quindi questo articolo non presuppone una particolare soglia di versione di Python.
Un errore di ricerca può significare che la distribuzione non è installata nell’ambiente attivo, che il nome è errato o che il comando sta usando un ambiente Python diverso da quello in cui è stato installato il pacchetto. Controlla il nome della distribuzione e l’interprete prima di trarre una conclusione.
Controlla l’attributo __version__ di un modulo quando è disponibile
Alcuni moduli espongono la propria versione come stringa __version__. Ad esempio, dopo aver importato un modulo che fornisce l’attributo, leggilo con print(module.__version__). È un controllo comodo quando l’attributo esiste, ma non fa parte di un requisito universale per i moduli Python. La ricerca dei metadati della libreria standard descritta sopra è più adatta quando ti servono i metadati della distribuzione installata in base al nome.
Controlla un pacchetto con pip show
Usa python -m pip show PACKAGE in un terminale per visualizzare i dettagli di una distribuzione installata. Questo esempio di comando non viene eseguito qui. Ad esempio, esegui python -m pip show requests. Trova la riga Version nel risultato. Eseguire pip come modulo del Python scelto aiuta ad allineare il comando all’ambiente di quell’interprete; un comando pip nudo può riferirsi a un’installazione diversa. pip show riporta i metadati del pacchetto e non installa né aggiorna il pacchetto.
Usa pkg_resources per gli ambienti legacy
Negli ambienti che usano pkg_resources, importalo prima di chiamare get_distribution(). Passa un nome di distribuzione, che può differire dal nome di importazione del modulo. Questo esempio autonomo controlla la distribuzione pip installata quando pkg_resources è disponibile; l’API può essere assente in alcuni ambienti:
try:
import pkg_resources
except ImportError:
print("pkg_resources is unavailable in this environment.")
else:
try:
print(pkg_resources.get_distribution("pip").version)
except pkg_resources.DistributionNotFound:
print("pip is not installed in this environment.")
Questa è un’alternativa legacy; per il codice nuovo, preferisci importlib.metadata quando è disponibile.