Machen Sie diesen Fehler nicht, wenn Sie Ihr Python-Projekt starten
Wichtige Erkenntnisse
- Virtuelle Umgebungen schaffen isolierte Räume für Python-Projekte, um Paketkonflikte und Fehler zu vermeiden.
- Sie erstellen einen separaten Ordner mit ihrer eigenen Kopie von Python und verwalten den PATH Ihres Systems, um zwischen den Umgebungen zu wechseln.
- Sie helfen, Ihre globale Python-Umgebung sauber zu halten, indem sie die Verschmutzung mit unnötigen Paketen verhindern, die möglicherweise nicht für jedes Projekt benötigt werden.
Ein Python-Projekt starten? Als Entwickler wirst du oft an mehreren Projekten gleichzeitig arbeiten. Wenn das bei dir der Fall ist, sind virtuelle Umgebungen dein Freund. Sie helfen dir, Paketkonflikte und Abhängigkeitsprobleme zu überwinden, wenn du an mehreren Python-Projekten arbeitest.
Was ist eine virtuelle Umgebung?
Eine virtuelle Umgebung im Kontext der Python-Programmierung bedeutet einen eigenständigen Ort, der es Ihnen ermöglicht, separate und isolierte Umgebungen für Ihre Python-Projekte zu pflegen. Wenn sie aktiviert ist, passt sie die Umgebung Ihres Terminals an, um dieses isolierte Python-Setup zu verwenden. Virtuelle Umgebungen ermöglichen es Ihnen, mehrere Versionen von Python und anderen Paketen zu verwenden, ohne dass eine mit der anderen in Konflikt gerät. Dieser Prozess ist auf Betriebssystemen wie Windows, Linux und macOS konsistent.
Um eine virtuelle Umgebung zu nutzen, erstellen Sie sie zunächst, aktivieren Sie sie, installieren die notwendigen Pakete für Ihr Projekt darin und, wenn Sie mit der Arbeit an dem Projekt fertig sind, deaktivieren Sie schließlich die Umgebung. (Ich werde alle Schritte gleich erläutern.)
Wenn Sie zum ersten Mal eine virtuelle Umgebung erstellen, wird ein neuer Ordner in Ihrem Projektverzeichnis erstellt. Die virtuelle Umgebung lebt in diesem Ordner. Eine Kopie des Python-Interpreters und einige wichtige Dateien werden in diesen Ordner gelegt. Diese Kopie fungiert als die Haupt-Python-Installation für Ihr Projekt. Außerdem enthält sie einen Ordner Scripts (Windows) oder bin (Linux), der die Aktiverungs- und Deaktivierungsskripte enthält, sodass Sie zwischen Ihrer globalen Python-Installation und den isolierten Versionen wechseln können.
Nachdem Sie die Umgebung aktiviert haben, ändert sich die Umgebung Ihrer Shell, sodass die Befehlszeile den Python-Interpreter und die Bibliotheken innerhalb der virtuellen Umgebung verwendet. Im Hintergrund wird die PATH-Variable der Umgebung aktualisiert. Der "bin"-Ordner ("Scripts" unter Windows) der virtuellen Umgebung wird am Anfang des PATH hinzugefügt, was Ihrem Terminal sagt, dass es dort zuerst nachsehen soll. Außerdem ändert sich Ihre Eingabeaufforderung, um die Aktualisierung widerzuspiegeln.
Beim Installieren eines Python-Pakets in einer virtuellen Umgebung wird es typischerweise im Ordner "lib/pythonX.X/site-packages" ("Lib\site-packages" unter Windows) installiert, anstatt im globalen Python-System. Jede Umgebung hat ihr eigenes Verzeichnis "site-packages", in dem alle installierten Bibliotheken und Abhängigkeiten gespeichert sind. Dies hält jedes Projekt isoliert und frei von Konflikten mit anderen Projekten oder globalen Paketen.
Warum eine virtuelle Umgebung für die Python-Entwicklung verwenden?
Angenommen, Sie arbeiten gleichzeitig an mehreren Python-Projekten. Eines der Projekte ist etwas älter. Beide Projekte benötigen das Django-Modul. Das alte Projekt benötigt jedoch Django Version 3, während das neuere Projekt Django Version 4 erfordert. Auf den ersten Blick könnten Sie in Erwägung ziehen, beide Versionen auf Ihrem System zu installieren.
Es ist jedoch nicht möglich, und Sie erhalten einen Fehler, wenn Sie es versuchen. Sie können also nicht zwei verschiedene Versionen des gleichen Pakets zur gleichen Zeit installieren. Selbst wenn es Ihnen gelingt, es zu installieren, wird die zuletzt installierte Version die vorher installierte Version überschreiben. Darüber hinaus können Sie beim Importieren eines Pakets in Ihren Python-Code nicht festlegen, welche Version verwendet werden soll. Das ist also ein weiterer Grund, warum Sie immer nur eine Version eines Pakets zur gleichen Zeit haben können.
Jetzt, wenn Sie an beiden Projekten arbeiten möchten, müssen Sie zuerst eine Django-Version installieren, an diesem Projekt arbeiten, sie dann deinstallieren, die andere Version installieren, zum anderen Projekt wechseln und so weiter. Das ist überhaupt nicht praktisch. Das ist nur ein kleines Beispiel. Sie werden wahrscheinlich mit viel komplizierteren Abhängigkeitskonflikten wie diesem konfrontiert.
Virtuelle Umgebungen lösen dieses Problem. Sie können für jedes Ihrer Projekte eine neue Umgebung erstellen, die erforderlichen Pakete und Abhängigkeiten installieren und sich keine Sorgen über Konflikte und Fehler machen. Hier ist ein kurzes Beispiel, wo ich zwei verschiedene Versionen von NumPy für zwei verschiedene Projekte installiert habe.
Für dieses Beispiel habe ich zwei virtuelle Umgebungen für zwei separate Projekte eingerichtet. Dann habe ich erfolgreich zwei separate Versionen von NumPy installiert. Hier verwendet projectA die Version 2.1.1, während projectB die Version 2.0.0 verwendet.
Ein weiterer Vorteil der Verwendung von virtuellen Umgebungen ist, wenn Sie mit anderen zusammenarbeiten oder Ihre Projekte teilen möchten. Indem Sie eine 'requirements.txt'-Datei verwenden, können Sie alle Abhängigkeiten definieren, die dann in einer neuen Umgebung auf einem anderen Rechner rekonstruiert werden können.
Wie man eine virtuelle Umgebung erstellt
Die virtuelle Umgebung ist ein Verzeichnis, das Sie erstellen, in dem Sie alle Projektdateien und zugehörigen Pakete aufbewahren. Zur Demonstration werde ich zunächst ein Verzeichnis erstellen, um die Umgebung einzurichten.
mkdir programming
cd programming
Innerhalb dieses neu erstellten Verzeichnisses werde ich eine virtuelle Umgebung erstellen.
Linux
In den meisten Linux-Distributionen ist Python normalerweise vorinstalliert. Wenn nicht, können Sie Python auf Linux mit Ihrem Paketmanager installieren. Installieren Sie dann die virtuelle Umgebung mit diesem Befehl:
sudo apt install python3-venvDanach können Sie virtuelle Umgebungen erstellen. Sie müssen der Umgebung einen Namen geben. Führen Sie dann den folgenden Befehl aus:
python3 -m venv my_virt_envIn meinem Fall habe ich es 'my_virt_env' genannt. Sie können einen beliebigen passenden Namen wählen.
Windows
Das erste, was Sie tun müssen, ist, Python unter Windows zu installieren. Stellen Sie während der Installation sicher, dass Sie Python.exe zu Ihrem System-PATH hinzufügen. Navigieren Sie zu dem Ordner, in dem Sie die virtuelle Umgebung erstellen möchten. Öffnen Sie Ihr bevorzugtes Befehlszeilentool und führen Sie dann Folgendes aus:
python -m venv myenvAktivieren der virtuellen Umgebung
Das Erstellen einer virtuellen Umgebung reicht nicht aus. Sie müssen sie mit der Aktivierungsdatei im Ordner aktivieren, um sie zu nutzen. Wenn Sie die virtuelle Umgebung erfolgreich aktivieren, werden Sie den Ordnernamen in Klammern am Anfang der Eingabeaufforderung in Ihrer Befehlszeile sehen.
Linux
Um die virtuelle Umgebung unter Linux zu aktivieren, führen Sie aus:
source my_virt_env/bin/activate
Denke daran, den gleichen Verzeichnisnamen zu verwenden, den du für die virtuelle Umgebung verwendet hast.
Jetzt, da Sie die virtuelle Umgebung aktiviert haben, können Sie Python-Pakete darin installieren, zum Beispiel so:
python -m pip install package_nameSobald Sie einige Pakete installiert haben, können Sie deren Versionen mit diesem Befehl überprüfen:
pip listWenn Sie die virtuelle Umgebung verlassen möchten, führen Sie aus:
deactivateDer Umgebungsname in den Klammern sollte aus der Eingabeaufforderung verschwinden.
Windows
Um die Umgebung unter Windows zu aktivieren, führen Sie Folgendes aus:
myenv\Scripts\activate CMD
.\myenv\Scripts\Activate.ps1 PowerShell
Um ein Paket in dieser Umgebung zu installieren, verwenden Sie diesen Befehl:
python -m pip install package_nameSie können die installierten Pakete auflisten, indem Sie folgende Befehle ausführen:
pip listWenn Sie die virtuelle Umgebung verlassen möchten, führen Sie aus:
deactivateWenn Sie die virtuelle Umgebung deaktivieren, kehren Sie zu Ihrer globalen Python-Umgebung zurück.
Python-Paket-Kopfschmerzen verschwunden
Mit einer eingerichteten virtuellen Umgebung sind Sie bereit, in Python zu programmieren, ohne sich um verschiedene Paketversionen, Konflikte und Fehler Sorgen machen zu müssen. Für diesen Leitfaden habe ich das venv-Tool verwendet. Es gibt auch andere Tools wie Virtualenv und Conda. Fühlen Sie sich frei, diese zu erkunden. Wenn Sie neu in Python sind, beginnen Sie mit den Grundlagen und erstellen Sie Ihr erstes Projekt.











