Python: Installierte Pakete prüfen – pip und Abhängigkeiten erklärt

1. Einführung

Beim Entwickeln oder Durchführen von Datenanalysen mit Python entstehen häufig Fragen wie „Welche Pakete sind derzeit installiert?“ oder „Welche Versionen haben sie jeweils?“. Insbesondere bei der Arbeit in einem Entwicklungsteam oder beim Wiederstarten eines alten Projekts nach langer Zeit ist die Überprüfung der installierten Pakete eine notwendige Aufgabe. Allerdings gibt es mehrere Methoden zur Verwaltung von Python-Paketen, und für Ungeübte kann es verwirrend sein, welchen Befehl man verwenden soll. Dieser Artikel adressiert das Bedürfnis nach „Python Paket Überprüfung“ und erklärt, beginnend mit dem pip-Befehl, wie man die Liste der Pakete erhält, Versionen überprüft und sogar Tools zur Visualisierung von Abhängigkeiten – alles leicht verständlich für Einsteiger. Darüber hinaus gehen wir auch auf geeignete Überprüfungsmethoden für verschiedene Entwicklungsumgebungen wie virtuelle Umgebungen oder Anaconda ein. Dies ist nicht nur nützlich für diejenigen, die Python ernsthaft einsetzen möchten, sondern auch für Ingenieure, die Python täglich nutzen. Lesen Sie daher bitte bis zum Ende.

2. Methode zum Abrufen der Paketliste (nach Befehl)

Um in Python die installierten Pakete und deren Versionen als Liste anzuzeigen, verwendet man hauptsächlich den “pip-Befehl”. Hier wird die Verwendung typischer Befehle und Beispiele für deren Ausgaben detailliert erläutert.

2.1 Verwendung von pip list

Die grundlegendste Methode besteht darin, den folgenden Befehl in der Terminal oder Eingabeaufforderung einzugeben.
pip list
Wenn Sie diesen Befehl ausfü hren, werden alle Paketnamen und deren Versionen, die in der aktuellen Python-Umgebung installiert sind, als Liste angezeigt. Zum Beispiel erhalten Sie eine Ausgabe wie die folgende.
Package      Version
------------ -------
numpy        1.26.4
pandas       2.2.2
requests     2.31.0
Hauptoptionen:
  • --outdated Zeigt nur Pakete an, die aktualisiert werden können.
  pip list --outdated
  • --not-required Zeigt nur Pakete an, die von keinem anderen Paket benötigt werden.
  pip list --not-required
  • --format=columns|freeze|json Ermöglicht die Angabe des Ausgabeformats. Zum Beispiel, um im JSON-Format auszugeben, machen Sie es wie folgt:
  pip list --format=json

2.2 Verwendung von pip freeze

pip freeze ist ähnlich wie pip list, gibt aber die Paketinformationen in einem Format (package==version) aus, das für “requirements.txt” usw. verwendet werden kann.
pip freeze
Als Beispiel ergibt sich eine Ausgabe wie die folgende.
numpy==1.26.4
pandas==2.2.2
requests==2.31.0
Dieses Format ist besonders nützlich, wenn Sie die gleiche Paketkonfiguration in einer anderen Umgebung reproduzieren möchten (z. B. für die Umgebungsrekonstruktion oder -freigabe). Zusätzlich können Sie mit dem folgenden Befehl in eine Datei speichern.
pip freeze > requirements.txt

2.3 Verwendung von pip show

Um detailliertere Informationen zu einem bestimmten Paket zu erhalten, verwenden Sie den pip show-Befehl.
pip show Paketname
Zum Beispiel, um die Details des requests-Pakets zu untersuchen, führen Sie es wie folgt aus.
pip show requests
Ausgabebeispiel (teilweise):
Name: requests
Version: 2.31.0
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Location: /usr/local/lib/python3.11/site-packages
Requires: 
Required-by: 
So können Sie verschiedene Informationen wie die Paketbeschreibung, Homepage, Abhängigkeiten, Installationsort usw. überprüfen. Durch die angemessene Verwendung dieser Befehle können Sie eine optimale Paketverwaltung je nach Situation durchführen.

3. Methode zur Überprüfung der Version innerhalb eines Skripts

In einem Python-Skript möchten Sie manchmal die Version eines installierten Pakets direkt überprüfen. Dies ist besonders hilfreich bei der Überprüfung der Programmausführung, der Erkennung von Umgebungsunterschieden oder beim Implementieren von versionabhängiger Verarbeitung. Hier stellen wir typische Überprüfungsmethoden vor.

3.1 version-Attribut nutzen

Viele Python-Pakete definieren ein Attribut namens __version__. Durch die Nutzung dieses Attributs können Sie die Versionsnummer einfach aus dem Code abrufen.Beispiel: Anzeige der NumPy-Version
import numpy
print(numpy.__version__)
Wenn Sie so schreiben, wird die NumPy-Version (z. B. 1.26.4) ausgegeben.

3.2 Hinweis: Wenn version nicht definiert ist

Nicht alle Pakete bieten das __version__-Attribut. Insbesondere bei kleinen Bibliotheken oder alten Paketen kann es fehlen. In diesem Fall sollten Sie die offizielle Dokumentation überprüfen oder die folgenden Methoden ausprobieren.

3.3 Methode mit importlib.metadata (Python 3.8 und höher)

Ab Python 3.8 können Sie die Versionsinformation eines installierten Pakets mit der Standardbibliothek importlib.metadata abrufen (oder für Versionen vor 3.8 importlib_metadata installieren).Beispiel: Abrufen der pandas-Version
from importlib.metadata import version
print(version("pandas"))
Diese Methode ist als moderner Ansatz empfehlenswert, da sie gut mit Paketen ohne __version__-Attribut umgeht.

3.4 Praktische Anwendungsfälle

  • Verzweigung der Verarbeitung je nach Version
  • Anzeige einer Warnung, wenn außerhalb des unterstützten Versionsbereichs
Beispiel: Versionsüberprüfung
import sys
from importlib.metadata import version

if version("numpy") < "1.20.0":
    sys.exit("NumPy 1.20.0 oder höher ist erforderlich. Bitte überprüfen Sie die Version.")
Das Wissen um Methoden, um die Version flexibel innerhalb eines Skripts zu überprüfen, hilft bei der Vermeidung von Umgebungsproblemen und der Verbesserung der Qualität.

4. Visualisierung von Abhängigkeiten: pipdeptree

Python-Projekte werden mit der Zeit größer und mehrere Pakete hängen dann voneinander ab. Wenn die Abhängigkeiten komplex werden, ist es schwierig zu erkennen, „welches Paket welches benötigt?“, was Updates und Fehlerbehebungen erschwert. In solchen Fällen ist das Tool „pipdeptree“ sehr hilfreich.

4.1 Was ist pipdeptree?

pipdeptree ist ein Kommandozeilen-Tool, das die Abhängigkeiten installierter Python-Pakete in einer Baumstruktur anzeigt. Durch diese Darstellung werden die Beziehungen zwischen den Paketen sofort ersichtlich, was es einfach macht, unnötige Pakete oder Konflikte zu entdecken.

4.2 So installieren Sie pipdeptree

Zuerst installieren Sie pipdeptree mit pip.
pip install pipdeptree

4.3 Grundlegende Verwendung

Nach der Installation können Sie die Abhängigkeiten in Baumform mit dem folgenden Befehl überprüfen.
pipdeptree
Beispielausgabe (Auszug):
pandas==2.2.2
  - numpy [required: >=1.24.0,<2.0.0, installed: 1.26.4]
  - python-dateutil [required: >=2.8.2, installed: 2.8.2]
    - six [required: >=1.5, installed: 1.16.0]
  - pytz [required: >=2020.1, installed: 2023.3]
So wird auf jeder Ebene sichtbar, auf welche Pakete jedes Paket angewiesen ist.

4.4 Häufig verwendete Optionen

  • -r (Reverse-Modus): Zeigt die übergeordneten Pakete an, die das angegebene Paket benötigen.
  pipdeptree -r
  • --warn fail/warn/silence: Steuert die Anzeige von Warnungen bei Problemen in den Abhängigkeiten (z. B. Konflikte).
  • --json: Macht die Ausgabe im JSON-Format, um die Integration mit anderen Tools zu erleichtern.

4.5 Anwendungen: Erhalt von Lizenzinformationen und Paketverwaltung

pipdeptree hilft nicht nur beim Verständnis der Abhängigkeiten, sondern auch beim Löschen unnötiger Pakete und der Auflösung von Konflikten zwischen Paketen. Es eignet sich für die Bereinigung von Projekten sowie für Sicherheits- und Lizenzüberprüfungen, daher empfehle ich, es zu erlernen. Wenn Sie merken, dass die Abhängigkeiten komplexer werden, überprüfen Sie einmal den Gesamtzustand mit pipdeptree. Im nächsten Abschnitt stelle ich Methoden zur Überprüfung von Paketen in virtuellen Umgebungen oder Conda-Umgebungen vor.
侍エンジニア塾

5. Virtuelle Umgebungen und Paketüberprüfung

Bei der Python-Entwicklung werden virtuelle Umgebungen (z. B. venv oder virtualenv) oder Anaconda (Conda-Umgebungen) häufig verwendet. Da die in diesen Umgebungen installierten Pakete unterschiedlich sind, ist es wichtig, genau zu verstehen, „in welcher Umgebung jetzt was installiert ist“. Hier stellen wir Methoden vor, um Pakete in virtuellen Umgebungen oder Conda-Umgebungen zu überprüfen.

5.1 Im Fall virtueller Umgebungen (venv, virtualenv)

Wenn die virtuelle Umgebung aktiviert ist, können die zuvor vorgestellten Befehle pip list, pip freeze oder pip show verwendet werden, um nur die Paketinformationen in dieser virtuellen Umgebung anzuzeigen. 【Grundlegender Ablauf für virtuelle Umgebungen】
  1. Erstellung der virtuellen Umgebung
   python -m venv myenv
  1. Aktivierung der virtuellen Umgebung (im Windows-Fall)
   myenvScriptsactivate
(im Fall von macOS/Linux)
   source myenv/bin/activate
  1. Überprüfung der Paketliste
   pip list
Dadurch können unterschiedliche Paketkonfigurationen für jedes Projekt sicher verwaltet werden.

5.2 Im Fall von Conda-Umgebungen

Bei der Nutzung von Anaconda oder Miniconda ist es üblich, den conda-Befehl für die Paketverwaltung zu verwenden.
  • Aktivierung der Conda-Umgebung
  conda activate myenv
  • Überprüfung der Paketliste
  conda list
Die Ausführung von conda list zeigt eine Liste aller in dieser Umgebung installierten Pakete und ihrer Versionen an. Zusätzlich kann ein spezifisches Paket wie folgt überprüft werden.
conda list Paketname

5.3 Hinweise

  • Das Ausführen von Befehlen ohne Aktivierung der virtuellen oder Conda-Umgebung führt dazu, dass die Pakete der globalen Umgebung angezeigt werden, also Vorsicht walten lassen.
  • Durch die Trennung von Umgebungen für jedes Projekt können Paketkonflikte und Funktionsstörungen verhindert werden.
Auf diese Weise wird die Python-Entwicklung angenehmer, wenn Pakete korrekt pro Umgebung verwaltet und bei Bedarf überprüft werden können.

6. Zusammenfassung

Beim Entwickeln mit Python ist es aus Sicht der Projektverwaltung und der Vermeidung von Problemen äußerst wichtig, die installierten Pakete und ihre Versionen zu kennen. In diesem Artikel haben wir die Methoden zur Überprüfung von Paketen systematisch erklärt und nützliche Informationen für Anfänger bis zu Fortgeschrittenen bereitgestellt. Zuerst können Sie durch die Verwendung grundlegender Befehle wie „pip list“, „pip freeze“ oder „pip show“ einfach Paketlisten oder detaillierte Informationen abrufen. Darüber hinaus haben wir Methoden vorgestellt, um die Version eines bestimmten Pakets programmgesteuert zu überprüfen, indem man in Skripten das __version__-Attribut oder importlib.metadata verwendet. Zusätzlich erleichtert die Nutzung von „pipdeptree“ bei komplexen Abhängigkeiten zwischen Paketen die Erfassung des Gesamtbilds in einer Baumstruktur. Ergänzend dazu können in virtuellen Umgebungen oder Conda-Umgebungen die Paketinformationen genau mit den jeweiligen Umgebungs-Befehlen verwaltet werden. Durch den gezielten Einsatz dieser Methoden wird die Paketverwaltung effizienter und sicherer. Besonders in Projekten, die von mehreren Personen entwickelt werden, oder in Systemen, die eine langfristige Wartung erfordern, trägt die regelmäßige Überprüfung der Pakete zur Vermeidung von Problemen bei. Nutzen Sie bitte die in diesem Artikel vorgestellten Befehle und Tools, um eine angenehmere Python-Entwicklungsumgebung einzurichten.

7. Häufig gestellte Fragen (FAQ)

Hier haben wir die häufig gestellten Fragen und Antworten zur „Überprüfung von Python-Paketen“ zusammengefasst. Bitte nutzen Sie dies als Referenz, wenn Sie Probleme haben oder etwas wissen möchten.

Q1. Wie kann ich alle installierten Pakete in Python auf einmal überprüfen?

pip list
oder
pip freeze
ausführen, um alle installierten Pakete und ihre Versionen anzuzeigen.

Q2. Wie kann ich die Version eines bestimmten Pakets überprüfen?

pip show Paketname
um detaillierte Informationen zum angegebenen Paket zu erhalten. Oder in einem Python-Skript
import Paketname
print(Paketname.__version__)
schreiben, um die Version auszugeben (allerdings haben nicht alle Pakete das __version__-Attribut).

Q3. Wie kann ich die Abhängigkeiten der Pakete in Baumform überprüfen?

pipdeptree-Tool installieren und
pipdeptree
ausführen, um die Abhängigkeiten der installierten Pakete in Baumstruktur zu überprüfen.

Q4. Ist die Überprüfungsmethode in virtuellen Umgebungen oder Anaconda (conda)-Umgebungen anders?

In einer aktivierten virtuellen Umgebung zeigenpip listoderpip freezenur die Pakete dieser Umgebung an. Für Anaconda/Miniconda verwenden Sie den Befehl
conda list
.

Q5. Kann ich auch Lizenzinformationen überprüfen?

pip show Paketnamezeigt für einige Pakete Lizenzinformationen an. Zusätzlich können Sie pipdeptree oder andere externe Tools kombinieren, um Lizenzen batchweise zu überprüfen.

Q6. Was tun, wenn der pip-Befehl nicht richtig funktioniert?

Oft liegt es daran, dass Python oder pip nicht installiert sind oder es Probleme mit dem Pfad gibt.
  • python -m pip list ausführen, indem Sie „python -m“ anhängen
  • pip upgraden (python -m pip install --upgrade pip)
  • Überprüfen, ob die virtuelle Umgebung oder Anaconda-Umgebung korrekt aktiviert ist und Ähnliches ausprobieren.

Q7. Wie speichere ich Paketinformationen in einer Datei?

pip freeze > requirements.txt
ausführen, um die aktuelle Paketliste als Datei zu speichern.
年収訴求