Python ist eine Programmiersprache, die aufgrund ihrer einfachen und lesbaren Syntax von Anfängern bis hin zu professionellen Ingenieuren weit verbreitet ist. Wenn man jedoch mit der Entwicklung beginnt, stößt man oft auf Probleme wie „Dieser Code funktioniert aus irgendeinem Grund nicht“ oder „Modul nicht gefunden“. Der Grund dafür liegt meist in der Verwaltung der Pakete. In Python ist es selten, dass die Entwicklung nur mit der Standardbibliothek abgeschlossen werden kann; in vielen Fällen installiert und verwendet man zusätzliche externe Pakete (Bibliotheken). Wenn zu diesem Zeitpunkt der Mechanismus zum korrekten Installieren, Verwalten und Aktualisieren von Paketen nicht solide ist, kann das Projekt kaputtgehen oder die Zusammenarbeit mit anderen behindert werden.
Die Welt der Verwaltung, die nicht mit „pip install“ endet
Für jemanden, der zum ersten Mal Python verwendet, ist der Gedanke „Mit pip install installieren und fertig“ ganz natürlich. Tatsächlich kann man damit Bibliotheken einfach hinzufügen. Wenn jedoch die Anzahl der Projekte zunimmt,
Konflikte zwischen Paketversionen in anderen Projekten
Bugs durch alte Versionen
Funktioniert nur nicht in der Produktionsumgebung
solchen Problemen begegnen. Das sind typische Probleme, die durch Mangel an Wissen in der Paketverwaltung entstehen.
Was Sie in diesem Artikel lernen können
In diesem Artikel erklären wir die Paketverwaltung in Python systematisch und für Anfänger verständlich. Konkret behandeln wir folgende Inhalte:
Was ist ein „Paket“ in Python?
Wie man Tools wie pip, venv, Poetry usw. einsetzt
Gründe für die Verwendung von virtuellen Umgebungen und deren Nutzung
Häufige Fehler in der Paketverwaltung und deren Behebung
Häufig gestellte Fragen und deren Antworten
Nicht nur eine Auflistung der Verwendungen, sondern wir gehen auch auf den Hintergrund ein, warum das notwendig ist und wie man wählt.
2. Was ist ein Paket in Python?
Was ist ein Paket? Unterschied zu Modulen
In Python bezeichnet ein „Paket“ eine Bibliothek in Form einer Verzeichnisstruktur, die mehrere Module (Python-Dateien) zusammenfasst. In Python werden nützliche Funktionen und Klassen zur Erhöhung der Wiederverwendbarkeit als Module in Dateien bereitgestellt, und die weitere Organisation und Strukturierung dieser ergibt ein „Paket“. Zum Beispiel enthält das beliebte Paket requests für HTTP-Kommunikation mehrere Dateien (= Module), die zusammen als ein Paket funktionieren.
Begriff
Inhalt
Modul
Python-Datei mit .py-Erweiterung (z. B. math.py)
Paket
Ordnerstruktur, die Module zusammenfasst (einschließlich __init__.py)
Warum Pakete verwenden?
Beim Entwickeln in Python sind Pakete unverzichtbar. Funktionen, die die Standardbibliothek nicht abdeckt (z. B. Datenanalyse, maschinelles Lernen, Web-Kommunikation), können durch die Verwendung externer Pakete einfach eingeführt und implementiert werden. Darüber hinaus gibt es in der Python-Community zahlreiche ausgezeichnete Pakete, die zu effizienter Entwicklung und der Erstellung hochwertigen Codes beitragen.
Was ist der Python Package Index (PyPI)?
Viele Pakete werden im offiziellen Repository „PyPI (Python Package Index)“ veröffentlicht. PyPI ist eine riesige Datenbank, die Python-Pakete von Entwicklern weltweit sammelt, und mit dem pip-Befehl können Pakete von dort einfach installiert werden.
pip install numpy
Wenn ein solcher Befehl ausgeführt wird, sucht pip auf PyPI nach dem numpy-Paket, lädt es herunter und installiert es.
Wie pip Pakete installiert
pip ist das offizielle Paketverwaltungstool von Python und funktioniert in folgendem Ablauf.
PyPI (oder eine angegebene URL) referenzieren und Paketinformationen abrufen
Das neueste oder ein spezifiziertes Version des Pakets herunterladen
Falls benötigte Abhängigkeitspakete vorhanden sind, diese ebenfalls gleichzeitig installieren
In das site-packages-Verzeichnis der lokalen Umgebung speichern
Nach der Installation kann in Python-Skripten wie folgt verwendet werden.
import numpy as np
arr = np.array([1, 2, 3])
print(arr)
Zusammenfassung: Das Verständnis von Paketen ist der erste Schritt zur Vermeidung von Problemen
Durch das Verständnis des Paketmechanismus in Python können häufige Probleme wie „Modul nicht gefunden“ oder „Funktioniert nicht mit alter Version“ im Voraus vermieden werden. Im nächsten Abschnitt erklären wir detaillierter das grundlegende Tool „pip“ zur Einführung und Verwaltung solcher Pakete.
3. Das grundlegende Paketverwaltungstool „pip“
Was ist pip?
pip ist das grundlegendste Paketverwaltungstool in Python. Ab Python 3.4 ist es standardmäßig installiert und kann ohne zusätzliche Konfiguration verwendet werden. Seine Hauptrollen umfassen die Installation, Deinstallation, Aktualisierung und Anzeige von externen Paketen usw. Der Name pip ist eine Abkürzung für „Pip Installs Packages“ und ist, wie der Name schon sagt, ein Kommandozeilen-Tool zur Installation von Python-Paketen.
Grundlegende Befehle und Verwendung von pip
Im Folgenden werden die häufigsten Befehle von pip und ihre Verwendungszwecke zusammengefasst.
Befehl
Beschreibung
pip install Paketname
Paket installieren
pip uninstall Paketname
Paket deinstallieren (löschen)
pip list
Liste der derzeit installierten Pakete anzeigen
pip show Paketname
Detaillierte Informationen zu einem angegebenen Paket anzeigen
pip freeze
Installierte Pakete und Versionen anzeigen (wird später für requirements.txt verwendet)
pip install -r requirements.txt
Mehrere Pakete batchweise installieren (praktisch beim Teilen von Projekten)
Beispiel zur Verwendung (Kommandozeile):
pip install requests
pip list
pip uninstall requests
Was ist requirements.txt?
requirements.txt ist eine Datei, die die in einem Projekt verwendeten Pakete und deren Versionsinformationen zusammenfasst. Bei der Entwicklung durch mehrere Personen oder beim Verschieben eines Projekts in eine andere Umgebung ist diese Datei sehr praktisch. Der Inhalt sieht in etwa so aus:
requests==2.31.0
numpy>=1.24
Mit dieser Datei können die Pakete mit dem folgenden Befehl batchweise installiert werden.
pip install -r requirements.txt
Aktualisierung und Versionsspezifikation
Mit pip können Pakete aktualisiert oder mit einer spezifischen Version installiert werden.
Falls die neueste Version aktualisiert werden soll:
pip install --upgrade Paketname
Installation mit einer spezifischen Version:
pip install Paketname==1.2.3
Probleme mit Abhängigkeiten und Hinweise
pip ist einfach und benutzerfreundlich, hat jedoch Schwächen bei der Verwaltung komplexer Abhängigkeiten. Zum Beispiel kann es Konflikte geben, wenn ein Paket eine bestimmte Version erfordert und ein anderes Paket eine andere Version verlangt. Daraus resultieren möglicherweise
Fehler bei der Installation
Fehler zur Laufzeit
Beschädigung anderer Pakete
solche Probleme. Um solche Probleme zu vermeiden, ist die Einführung von virtuellen Umgebungen (venv) oder fortschrittlicheren Tools (wie Poetry), die später besprochen werden, wirksam.
Zusammenfassung: pip ist grundlegend, aber nicht überbewerten
pip ist die Basis der Python-Entwicklung und reicht für kleine Skripte oder persönliche Entwicklungen oft aus. Bei Projekten mit komplexen Abhängigkeiten oder Unterschieden in der Entwicklungsumgebung kann es jedoch schwierig werden, nur mit pip zu verwalten. Im nächsten Abschnitt werden wir detailliert auf die Verwendung von „virtuellen Umgebungen (venv)“ eingehen, um solche Probleme zu lösen.
4. Gründe und Verwendung von virtuellen Umgebungen (venv)
Warum sind virtuelle Umgebungen notwendig?
Beim Entwickeln mit Python unterscheiden sich die Arten und Versionen der verwendeten Pakete oft je nach Projekt. Zum Beispiel:
In Projekt A wird Django 3.2 verwendet
In Projekt B wird Django 4.0 verwendet
In solchen Fällen entsteht bei einer systemweiten Installation der Pakete das Problem, dass das Upgraden eines die Funktionalität des anderen beeinträchtigt. Um das zu vermeiden, werden virtuelle Umgebungen eingeführt. Durch die Verwendung von virtuellen Umgebungen kann eine unabhängige Paketverwaltung pro Projekt erfolgen, was eine Entwicklung ohne Interferenz mit anderen Umgebungen ermöglicht.
Was ist venv?
venv ist das Standard-Tool von Python zur Erstellung virtueller Umgebungen. Es ist seit Python 3.3 standardmäßig integriert und erfordert keine zusätzliche Installation. Mit venv können unabhängige Python-Ausführungs-Umgebungen und Paket-Sammlungen pro Projekt erstellt werden.
Grundlegende Operationen von venv
1. Erstellung einer virtuellen Umgebung
Führen Sie den folgenden Befehl in einem beliebigen Projektordner aus.
python -m venv venv
Mit diesem Befehl wird ein Ordner namens venv erstellt und die virtuelle Umgebung eingerichtet (der Ordnername ist beliebig, aber konventionell wird venv verwendet).
2. Aktivierung der virtuellen Umgebung
Windows :
venv/Scripts/activate
macOS / Linux :
source venv/bin/activate
Bei erfolgreicher Aktivierung wird am Anfang des Terminals etwas wie (venv) angezeigt.
3. Deaktivierung der virtuellen Umgebung
Wenn Sie die virtuelle Umgebung verlassen möchten, führen Sie den folgenden Befehl aus.
deactivate
4. Löschen der virtuellen Umgebung
Da eine virtuelle Umgebung nur ein Ordner ist, reicht es, das venv-Verzeichnis zu löschen.
rm -r venv # mac/Linux
rd /s /q venv # Windows
Sichere Umgebungskonfiguration mit venv + pip
Wenn pip install in einem aktivierten virtuellen Umfeld ausgeführt wird, werden die Pakete in der virtuellen Umgebung installiert und beeinflussen das gesamte System nicht. Dadurch können negative Auswirkungen auf Produktionsumgebungen oder andere Projekte verhindert werden.
source venv/bin/activate
pip install requests
Die in diesem Zustand installierten Bibliotheken werden nach dem Verlassen der virtuellen Umgebung (deactivate) nicht mehr verfügbar sein.
Integration mit IDEs (VSCode usw.)
In Editoren wie Visual Studio Code (VSCode), die von vielen Ingenieuren heutzutage verwendet werden, gibt es Funktionen zur automatischen Erkennung virtueller Umgebungen und zum Wechseln der Python-Ausführungs-Umgebung pro Projekt. Die Kombination mit venv verbessert die Entwicklungs-Effizienz und die Stabilität der Umgebung erheblich.
Zusammenfassung: Virtuelle Umgebungen sind eine Grundfertigkeit in der Python-Entwicklung
Die Python-virtuellen Umgebungen (venv) sind eine notwendige Fertigkeit, um Versionskonflikte von Paketen und Umgebungsprobleme zu vermeiden. Durch die Kombination mit pip kann eine sichere und reproduzierbare Entwicklungsumgebung eingerichtet werden.
5. Die Nutzung des Abhängigkeitsmanagement-Tools „Poetry“
Gründe, warum pip und venv allein nicht ausreichen
pip und venv sind grundlegende Tools in der Python-Entwicklung, aber wenn Projekte komplexer werden oder Team-Entwicklung erforderlich ist, treten folgende Herausforderungen auf.
Wenn Abhängigkeiten zunehmen, wird requirements.txt oft manuell verwaltet
Es ist schwierig, den Paketstatus in mehreren Umgebungen zu reproduzieren
Das Veröffentlichen und Bauen von Paketen ist umständlich
Um diese Herausforderungen zu bewältigen, gibt es das Paket- und Projektmanagement-Tool namens Poetry (Poetry).
Was ist Poetry?
Poetry ist ein modernes Tool, das die Abhängigkeiten, virtuellen Umgebungen und Paketveröffentlichungen von Python-Projekten integriert verwalten kann. Es hat folgende Merkmale:
Abhängigkeitsinformationen zentral in pyproject.toml verwalten
Automatische Erstellung und Verwaltung virtueller Umgebungen
Keine manuelle Konfiguration von pip oder venv erforderlich
Mögliche Paket-Builds und -Veröffentlichungen (PyPI-kompatibel)
Mit Poetry können Sie eine Entwicklungsumgebung schaffen, in der Sie sich auf das Schreiben von Code konzentrieren können.
Installationsmethode für Poetry
Poetry wird mit dem offiziellen Skript installiert. Durch Ausführen des folgenden Befehls wird es OS-spezifisch installiert.
2. Verwendung von Poetry in einem bestehenden Projekt
Führen Sie das Folgende in einem vorhandenen Ordner aus:
poetry init
Abhängigkeiten werden interaktiv registriert, und pyproject.toml wird generiert.
3. Hinzufügen und Entfernen von Paketen
Hinzufügen (Installieren):
poetry add requests
Entfernen:
poetry remove requests
4. Automatische Erstellung und Ausführung der virtuellen Umgebung
Poetry erstellt automatisch eine virtuelle Umgebung, wenn Abhängigkeiten hinzugefügt werden. Mit dem Folgenden können Sie in diese Umgebung eintreten:
poetry shell
In der virtuellen Umgebung können Python und pip verwendet werden.
5. Sicherstellung der Reproduzierbarkeit durch Lock-Datei
Poetry speichert die Abhängigkeitsinformationen in einer Datei namens poetry.lock. Dadurch können andere Entwickler genau dieselbe Umgebung reproduzieren.
poetry install
Mit diesem Befehl kann eine genaue Umgebung basierend auf pyproject.toml und poetry.lock aufgebaut werden.
Die Rolle von pyproject.toml
Bei Poetry werden alle Einstellungen in einer einzigen Datei pyproject.toml zusammengefasst, ohne die herkömmlichen setup.py oder requirements.txt zu verwenden. Beispiel:
[tool.poetry]
name = "myproject"
version = "0.1.0"
description = ""
authors = ["Ihr Name <you@example.com>"]
[tool.poetry.dependencies]
Durch diese Struktur kann eine ideale Umgebung realisiert werden, in der der Projektstatus mit Code verwaltet wird.
Zusammenfassung: Poetry ist ein starker Verbündeter für moderne Entwicklung
Poetry ist ein mächtiges Entwicklungsunterstützungstool, das von der komplizierten Verwaltung mit herkömmlichem pip und venv befreit. Besonders empfehlenswert für:
Personen, die in Teams entwickeln
Personen, die Paketabhängigkeiten klar machen wollen
Personen, die den Aufbau virtueller Umgebungen automatisieren wollen
Personen, die Pakete zukünftig veröffentlichen wollen
6. Vergleich mit anderen Tools (Poetry vs. pipenv vs. conda)
Paketverwaltungstools sollten je nach Verwendungszweck ausgewählt werden
Für die Paketverwaltung in Python gibt es neben pip und venv mehrere nützliche Tools. Als repräsentative Beispiele gelten die folgenden drei:
Poetry: Modernes Tool mit Stärken in der Abhängigkeitsverwaltung und beim Paketbau
Pipenv: Zwischenform von pip und venv. Benutzerfreundlich für Anfänger, aber etwas instabil
conda: Stark in der Umgebungsbau für Data Science, kann auch Nicht-Python verwalten
Jedes Tool hat Stärken und Schwächen, daher ist es wichtig, das optimale Tool je nach Zweck des Projekts und Entwicklungsstil auszuwählen.
Vergleichstabelle der Tools
Im Folgenden werden die Hauptunterschiede von Poetry, Pipenv und conda in einer Tabelle zusammengefasst:
Aspekt
Poetry
Pipenv
conda
Verwaltung virtueller Umgebungen
Automatisch erstellt und verwaltet
Automatisch erstellt und verwaltet
Eigene Umgebung (conda)
Klärung von Abhängigkeiten
pyproject.toml & poetry.lock
Pipfile & Pipfile.lock
environment.yml
Unterstützung für andere Sprachen als Python
✕
✕
◯ (R, C, Java usw.)
Paketbau und -veröffentlichung
◯ (PyPI-kompatibel)
△ (Veröffentlichung nicht möglich)
✕
Cross-Platform-Unterstützung
◯
△ (einige Fehler vorhanden)
◯
Modernität und Konsistenz in der Entwicklung
◎
○
△ (etwas schwerfällig)
Hauptverwendungszwecke
Web-Entwicklung und -veröffentlichung
Entwicklung für Anfänger
Datenanalyse und wissenschaftliches Rechnen
Merkmale der Tools und geeignete Fälle
Poetry: Realisiert Best Practices für Entwickler
Poetry ist das Tool, das den größten Wert auf „Python-Entwicklung als Projekt“ legt. Da Abhängigkeitsverwaltung, Automatisierung virtueller Umgebungen, Paketveröffentlichung usw. einheitlich verwaltet werden können, ist es sehr beliebt bei Mittel- bis Fortgeschrittenen. Geeignet für:
Personen, die Web-Apps oder APIs usw. mit Python ernsthaft entwickeln
Personen, die eigene Pakete auf PyPI veröffentlichen möchten
Personen in der Team-Entwicklung, die die Reproduzierbarkeit von Konfigurationsdateien priorisieren
Pipenv: Tool, das das Beste aus pip und venv kombiniert
Pipenv integriert die Funktionen von pip und venv und bietet eine benutzerfreundliche Oberfläche für Anfänger. Es verwaltet Abhängigkeiten in einem eigenen Format namens Pipfile und erstellt automatisch virtuelle Umgebungen. Allerdings hat die Update-Frequenz nachgelassen, und in einigen Umgebungen werden instabile Aktionen oder Fehler berichtet, weshalb in letzter Zeit zunehmend auf Poetry umgestiegen wird. Geeignet für:
Anfänger, die sich etwas an pip und venv gewöhnt haben
Personen, die mit Lernzwecken oder kleinen Projekten beginnen möchten
Personen, die intuitive Bedienung mit wenigen Befehlen bevorzugen
conda: Umfassende Verwaltung von Umgebungen inklusive Nicht-Python
conda ist ein Paketverwaltungstool aus der Anaconda-Distribution und kann nicht nur Python, sondern auch Umgebungen für R oder C usw. verwalten. Es wird insbesondere in der Wissenschaftlichen Rechnung und Datenanalyse geschätzt. Seine Fähigkeit zur Lösung von Paketabhängigkeiten ist außergewöhnlich hoch, was den Umgang mit komplexen Bibliotheken (NumPy, TensorFlow, OpenCV usw.) erleichtert – ein großer Vorteil. Geeignet für:
Personen, die es in Data Science, Machine Learning oder statistischer Analyse einsetzen möchten
Personen, die gleichzeitig Sprachen außer Python verwalten möchten
Personen in Windows-Umgebungen, die mit Paketabhängigkeiten zu kämpfen haben
Richtlinien zur Auswahl
Wenn Sie unsicher sind, hilft es, wie folgt zu denken.
Entwickler- und Veröffentlichungsorientiert → Poetry
Lernzweck und leichte Umgebung → Pipenv (oder venv + pip)
Datenanalyse und Mehrsprachen-Umgebung → conda
Zusammenfassung: Die Auswahl des Tools passend zum Zweck ist der Schlüssel zum Erfolg
Die Paketverwaltung in Python ist aufgrund der Vielfalt der Tools ein Bereich, in dem man leicht unsicher wird. Wenn man jedoch „worum es dabei geht“ klar hat, wird das optimale Tool von allein sichtbar. Poetry, Pipenv und conda haben jeweils Stärken und passende Szenarien. Durch die Auswahl passend zu Ihrem Entwicklungsstil oder Teamaufbau können Sie eine reibungslosere und reproduzierbarere Entwicklungsumgebung aufbauen.
7. Praktisches Beispiel: Schritte zur Umgebungseinrichtung pro Projekt
Warum sind die Schritte zur Umgebungseinrichtung wichtig?
Auch wenn Sie wissen, wie man Paketverwaltungstools verwendet, ist es sinnlos, wenn Sie nicht wissen, wie man in einem echten Projekt damit beginnt. Hier erklären wir die Schritte zur Einrichtung von Projekten in zwei Mustern, damit auch Anfänger ohne Verirrung vorankommen können.
Mit Poetry entfällt die manuelle Verwaltung von virtuellen Umgebungen und Abhängigkeiten, was eine effiziente Entwicklung ermöglicht. Schritt 1: Initialisierung des Projekts
poetry new my_project
cd my_project
Dadurch wird automatisch eine solche Struktur generiert.
Poetry erstellt zu diesem Zeitpunkt automatisch eine virtuelle Umgebung und protokolliert die Abhängigkeiten in pyproject.toml und poetry.lock. Schritt 3: In die virtuelle Umgebung wechseln (optional)
poetry shell
Schritt 4: Wie andere die Umgebung reproduzieren Beim Teilen des Projekts kann dieselbe Umgebung mit dem folgenden Befehl allein reproduziert werden:
poetry install
Dadurch werden alle Abhängigkeiten genau installiert und die virtuelle Umgebung automatisch generiert.
Welche Methode sollte man wählen?
Situation
Empfohlenes Tool
Zu Lernzwecken, zuerst mit Python vertraut werden wollen
pip + venv
Team-Entwicklung, explizite Abhängigkeiten und Automatisierung erforderlich
Poetry
Veröffentlichung oder Verteilung von Bibliotheken im Blick
Poetry
Leichte temporäre Skripte oder Tests
pip (ohne virtuelle Umgebung) ist auch in Ordnung
Ergänzung: Integration mit IDEs wie VSCode
In IDEs wie Visual Studio Code oder PyCharm gibt es Funktionen, die virtuelle Umgebungen oder Poetry-Umgebungen automatisch erkennen. Wenn Sie den Projektordner öffnen, wird der passende Python-Interpreter ausgewählt, sodass Sie auch im Editor die Umgebung mühelos wechseln können.
Zusammenfassung: Konsistente Umgebungseinrichtung ist der Schlüssel zu Qualität und Reproduzierbarkeit
In der Python-Entwicklung ist es sehr wichtig, eine Umgebung zu schaffen, die unabhängig davon, wer sie erstellt, gleich funktioniert. Wie in diesem Beitrag vorgestellt, kann dies durch den korrekten Einsatz von pip + venv oder Poetry erreicht werden.
8. Häufige Fehler und Lösungswege
Warum treten Fehler bei der Paketverwaltung häufig auf?
Python ist eine flexible Sprache, aber aufgrund von Versionsunterschieden der Pakete, Abhängigkeiten und Unterschieden in virtuellen Umgebungen treten unerwartete Fehler häufig auf. Insbesondere für Anfänger gibt es mehrere typische Probleme. Hier stellen wir repräsentative Fehler und ihre Lösungsmethoden vor.
Fehler①:ModuleNotFoundError – Modul nicht gefunden
Fehlerinhalt:
ModuleNotFoundError: No module named 'requests'
Ursache:
Das Paket ist nicht installiert
Die virtuelle Umgebung ist nicht aktiviert
Ausführung in einer anderen Python-Umgebung
Lösung:
Überprüfen, ob das Paket in der richtigen Umgebung installiert wurde
pip install requests
Überprüfen und erneut aktivieren der virtuellen Umgebung
source venv/bin/activate # oder venv\Scripts\activate
Bei Ausführung in IDEs wie VSCode die Auswahl des Python-Interpreters überprüfen
Fehler②:Permission denied oder Zugriffsverweigerung bei pip install
Versuch, Pakete in der globalen Umgebung zu installieren
Ausführung durch einen Benutzer ohne Administratorrechte
Lösung:
Überprüfen, ob in der virtuellen Umgebung gearbeitet wird
Falls unbedingt in der globalen Umgebung ausgeführt werden muss, die--user-Option hinzufügen
pip install --user Paketname
Auf Mac/Linux: Für Operationen, die Administratorrechte erfordern, sudo verwenden(nicht empfohlen)
Fehler③:Versionskonflikt(Abhängigkeitskollision)
Fehlerinhalt(Beispiel):
ERROR: Cannot install X==1.2.0 and Y==2.0.0 because these package versions have incompatible dependencies.
Ursache:
Mehrere gleichzeitig zu installierende Pakete hängen von unterschiedlichen Versionen derselben Bibliothek ab
Lösung:
Tools wie pipdeptree verwenden, um Abhängigkeiten zu visualisieren und zu überprüfen
Tools wie Poetry oder conda nutzen, die Abhängigkeitskonsistenz automatisch lösen
Falls der Konflikt nicht gelöst werden kann, separate virtuelle Umgebungen verwenden
Fehler④:Installation aus requirements.txt schlägt fehl
Fehlerinhalt:
ERROR: Could not find a version that satisfies the requirement X==1.0.0
Ursache:
Die in requirements.txt angegebene Version existiert nicht oder ist veraltet
Inkompatibel mit der eigenen Python-Version
Lösung:
Auf PyPI die Existenz des Pakets und der Version überprüfen
Eine kompatible Version entsprechend der Python-Version angeben
Bei Verwendung von Poetry: poetry update für konsistente Abhängigkeiten aktualisieren
Fehler⑤:Virtuelle Umgebung funktioniert nicht richtig oder kann nicht aktiviert werden
Fehlerinhalt(Beispiel):
source: command not found
Ursache:
Verwendung von Unix-Befehlen auf Windows
Falscher Pfad bei der Erstellung der virtuellen Umgebung
Lösung:
OS-spezifische Aktivierungsbefehle für virtuelle Umgebungen überprüfen
# macOS / Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
Falls die Umgebung beschädigt ist, löschen und neu erstellen
rm -r venv
python -m venv venv
Ergänzung:Probleme bei alter pip-Version
Wenn die pip-Version selbst veraltet ist, entspricht sie nicht den neuesten PyPI-Spezifikationen und Installationsfehler können auftreten. Lösung:
pip install --upgrade pip
Durch regelmäßige Upgrades lassen sich zukünftige Fehler leichter vermeiden.
Zusammenfassung:Fehler sind nicht furchterregend, wenn man die „Mechanismen“ kennt
Viele Fehler in der Paketverwaltung resultieren aus „Umgebung“, „Abhängigkeiten“ und „Python-Version“. Statt panisch alles Mögliche zu versuchen, ist es der kürzeste Weg zum Fortschritt in Python, die Fehlermeldung zu analysieren und die Mechanismen zu verstehen.
9. Häufig gestellte Fragen (FAQ)
Q1. Welches sollte ich verwenden, pip oder Poetry?
A. Für kleine Skripte oder Lernprojekte reicht die Kombination aus pip und venv aus. Allerdings ist bei der Entwicklung mit mehreren Personen oder wenn die Paketabhängigkeiten komplex werden, Poetry empfehlenswert, da es die Abhängigkeitsverwaltung einfacher macht und eine höhere Reproduzierbarkeit bietet.
Q2. Muss ich virtuelle Umgebungen unbedingt verwenden?
A. Es ist nicht zwingend erforderlich, aber dringend empfohlen. Ohne virtuelle Umgebungen wirkt sich das auf die gesamte System-Python-Umgebung aus und es können Probleme wie Konflikte mit Abhängigkeiten anderer Projekte auftreten.
Q3. Was ist der Unterschied zwischen pyproject.toml und requirements.txt?
A.
requirements.txt: Einfache Textdatei mit Abhängigkeitsliste für pip
pyproject.toml: Strukturierte Konfigurationsdatei für Tools wie Poetry (Abhängigkeiten + Metainformationen)
requirements.txt eignet sich für die Betonung der Reproduzierbarkeit der Installation, pyproject.toml für die Verwaltung der gesamten Projektstruktur.
Q4. Ist pipenv oder Poetry populärer?
A. Derzeit wird Poetry aktiver entwickelt und ist in Bezug auf Zuverlässigkeit und Funktionen überlegen. Pipenv war eine Zeit lang beliebt, aber aufgrund stagnierender Updates und zunehmender Fehlerberichte wechselt die Community zu Poetry.
Q5. Kann man conda und pip zusammen verwenden?
A. Grundsätzlich ja, aber Auf die Integrität der Abhängigkeiten muss geachtet werden. In einer conda-Umgebung sollten Pakete möglichst mit conda installiert werden und pip nur für Pakete verwendet werden, die in conda nicht verfügbar sind, um Probleme zu vermeiden.
Q6. Ich habe zu viele virtuelle Umgebungen erstellt und die Verwaltung ist kompliziert. Was tun?
A. Mit Poetry werden virtuelle Umgebungen automatisch erstellt und gelöscht, sodass der Aufwand für die manuelle Verwaltung erheblich reduziert wird. Um eine Liste der virtuellen Umgebungen oder deren Speicherorte anzuzeigen, können die folgenden Befehle verwendet werden:
poetry env list
poetry env remove <Umgebungsname>
Q7. Sollte man requirements.txt oder pyproject.toml in Git einbeziehen?
A. Ja, um die Reproduzierbarkeit des Projekts zu gewährleisten, sollten diese Dateien immer einbezogen werden. Dadurch können andere Entwickler die gleiche Umgebung einfach reproduzieren und die Team-Entwicklung verläuft reibungslos.
Q8. Kann man Pakete für Produktions- und Entwicklungsumgebungen getrennt verwalten?
A. Mit Poetry können Abhängigkeiten für Entwicklung und Produktion klar getrennt verwaltet werden. Zum Beispiel können Test-Frameworks nur für die Entwicklung installiert werden:
poetry add pytest --group dev
Dadurch müssen in der Produktionsumgebung unnötige Tools nicht installiert werden.
Q9. Was tun, wenn ein Fehler auftritt?
A. Lesen Sie zunächst die Fehlermeldung ruhig und überprüfen Sie die folgenden Punkte.
Ist die virtuelle Umgebung aktiviert?
Ist die verwendete Python-Version kompatibel?
Existiert das entsprechende Paket auf PyPI?
Zusätzlich empfehle ich, den Abschnitt „8. Häufige Fehler und Lösungen“ zu konsultieren.
Q10. Worauf sollte man bei der Entwicklung durch mehrere Personen achten?
A. Am wichtigsten ist es, die Umgebung reproduzierbar zu machen. Die folgenden Maßnahmen helfen, Probleme zu vermeiden:
Verwendung virtueller Umgebungen
Teilen von requirements.txt oder pyproject.toml / poetry.lock
Klare Angabe der Python-Version (z. B. Python 3.10 oder höher)
Mit Poetry lassen sich diese Anforderungen relativ einfach umsetzen.