HOWTO · Python
So überprüfen Sie die Version eines Python-Moduls
Erfahren Sie, wie Sie die Version eines installierten Python-Pakets mit importlib.metadata, dem __version__-Attribut eines Moduls, pip show oder pkg_resources überprüfen.
Auf dieser Seite
Um die Version eines installierten Pakets von Python aus zu überprüfen, verwenden Sie importlib.metadata.version() mit dem Distributionsnamen des Pakets. Für eine Überprüfung im Terminal führen Sie python -m pip show PACKAGE mit dem Python-Interpreter aus, dessen Umgebung Sie untersuchen möchten. Importnamen und Distributionsnamen können sich unterscheiden, verwenden Sie daher den Namen, der in den Installationsanweisungen des Pakets oder in den Paketmetadaten aufgeführt ist.
Verwenden Sie importlib.metadata, um die Version einer installierten Distribution zu erhalten
importlib.metadata liest Metadaten für installierte Distributionen. Übergeben Sie einen Distributionsnamen wie requests; der Name, den Sie in einer import-Anweisung schreiben, ist nicht immer derselbe. Dieses Beispiel gibt den Namen und die Version der ersten Distribution aus, die von der aktuellen Umgebung zurückgegeben wird:
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
Für ein bekanntes Paket rufen Sie metadata.version("requests") auf. Wenn das Modul importlib.metadata aus der Standardbibliothek in der Python-Umgebung nicht verfügbar ist, verwendet der separat installierte Backport den Importpfad importlib_metadata; seine Lookup-API heißt ebenfalls version(). Die Verfügbarkeit hängt von der Umgebung ab, daher geht dieser Artikel nicht von einer bestimmten Python-Version als Schwelle aus.
Ein fehlgeschlagener Lookup kann bedeuten, dass die Distribution in der aktiven Umgebung nicht installiert ist, dass der Name falsch ist oder dass der Befehl eine andere Python-Umgebung verwendet als die, in der das Paket installiert wurde. Überprüfen Sie den Distributionsnamen und den Interpreter, bevor Sie eine Schlussfolgerung ziehen.
Überprüfen Sie das Attribut __version__ eines Moduls, wenn es verfügbar ist
Einige Module stellen ihre Version als __version__-Zeichenkette bereit. Nachdem Sie beispielsweise ein Modul importiert haben, das das Attribut bereitstellt, lesen Sie es mit print(module.__version__). Dies ist eine bequeme Überprüfung, wenn das Attribut vorhanden ist, aber es ist keine universelle Anforderung für Python-Module. Die oben beschriebene Metadatenabfrage der Standardbibliothek eignet sich besser, wenn Sie die Metadaten einer installierten Distribution anhand ihres Namens benötigen.
Überprüfen Sie ein Paket mit pip show
Verwenden Sie python -m pip show PACKAGE in einem Terminal, um Details für eine installierte Distribution anzuzeigen. Dieses Befehlsbeispiel wird hier nicht ausgeführt. Führen Sie beispielsweise python -m pip show requests aus. Suchen Sie im Ergebnis nach der Zeile Version. Wenn Sie pip als Modul des gewählten Python ausführen, hilft dies, den Befehl an die Umgebung dieses Interpreters anzugleichen; ein bloßer pip-Befehl kann sich auf eine andere Installation beziehen. pip show meldet Paketmetadaten und installiert oder aktualisiert das Paket nicht.
Verwenden Sie pkg_resources für Legacy-Umgebungen
Importieren Sie in Umgebungen, die pkg_resources verwenden, dieses, bevor Sie get_distribution() aufrufen. Übergeben Sie einen Distributionsnamen, der sich vom Importnamen des Moduls unterscheiden kann. Dieses eigenständige Beispiel überprüft die installierte pip-Distribution, wenn pkg_resources verfügbar ist; die API kann in manchen Umgebungen fehlen:
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.")
Dies ist eine Legacy-Alternative; bevorzugen Sie für neuen Code importlib.metadata, wo es verfügbar ist.