Python

Virtuelle Umgebungen in Python 3

Virtuelle Umgebungen in Python 3
Wie die meisten Menschen hasse ich es, unnötige Pakete auf meiner Workstation zu installieren. Nachdem Sie mit ihnen fertig sind, reicht es nie aus, sie zu deinstallieren. Pakete hinterlassen tonnenweise Ordner und Dateien. Sie benötigen viele andere (obskure) Pakete, die auch im Zuge der Dinge zurückgelassen werden. Langsam aber sicher bauen sich diese Dinge auf Ihrer Workstation auf und obwohl sie möglicherweise keinen nennenswerten Teil Ihres Festplattenspeichers belegen, können sie andere Probleme verursachen.

Ältere Abhängigkeiten

Ältere Pakete können verweilen und Ihr Python-Code wird sie gerne verwenden. Dies ist kein Problem, wenn Ihre Python-Skripte lokal ausgeführt werden sollen und nicht für industrielle Zwecke. Data Scientists, Studenten und sogar normale Leute, die ihre täglichen Aufgaben automatisieren, können die älteren Pakete problemlos weiter verwenden.

Das Problem beginnt, wenn Sie Ihren Code an die Produktion senden. Wenn Sie dies tun, senden Sie wahrscheinlich nur Ihr Hauptskript und nicht alle Paketabhängigkeiten send. Wenn Sie beispielsweise einen Microservice geschrieben haben, der als AWS Lambda-Funktion ausgeliefert werden soll, können die ersten Zeilen das Anforderungsmodul wie folgt importieren:

Importanfrage

Das von AWS Lambda bereitgestellte Anforderungspaket unterscheidet sich von Ihrem älteren und das Programm kann daher abstürzen.

Konflikte

Konflikte können auch auftreten, wenn verschiedene Projekte unterschiedliche Versionen desselben Pakets verwenden. Vielleicht benötigen einige Ihrer älteren Projekte die älteren Pip-Pakete. Möglicherweise benötigen Sie das neuere Paket jedoch für andere Projekte. Ausführen von pip install -U wird das Paket auf Ihrem Betriebssystem aktualisieren, was zu Problemen führt, wenn Sie Ihre älteren Projekte wieder pflegen.

Virtuelle Python-Umgebungen

Wenn Sie eine Python-Version über 3 verwenden.5 können Sie ein integriertes Modul namens venv verwenden, um sogenannte virtuelle Python-Umgebungen zu erstellen. Dieses Modul erstellt einen isolierten Ordner oder ein Verzeichnis, in dem alle Ihre Pip-Pakete und andere Abhängigkeiten leben können other. Der Ordner enthält auch ein 'Aktivieren'-Skript darin. Wenn Sie eine bestimmte virtuelle Umgebung verwenden möchten, führen Sie einfach dieses Skript aus, woraufhin nur auf die Pakete in diesem Ordner zugegriffen werden kann. Wenn Sie pip install ausführen, werden die Pakete in diesem Ordner und nirgendwo anders installiert. Nachdem Sie mit der Verwendung einer Umgebung fertig sind, können Sie sie einfach "deaktivieren" und dann stehen Ihnen nur die globalen Pip-Pakete zur Verfügung.

Wenn Sie Ubuntu 18 verwenden.04 und höher müssen Sie nicht einmal den pip-Paketmanager auf Ihrem gesamten System installieren. Pip kann nur in Ihrer virtuellen Umgebung existieren, wenn Sie es so bevorzugen.

venv installieren und virtuelle Umgebungen erstellen

Ubuntu 18.04 LTS kommt aus der Box mit Python 3.6.x, aber das Python-Venv-Modul ist nicht installiert, ebensowenig pip. Lass uns einfach venv . installieren.

$ apt installiere python3-venv

Als nächstes gehen wir in das Verzeichnis, in dem Ihr Virtual Environment-Verzeichnis erstellt werden soll. Für mich ist es ~/project1

$ cd ~/project1

Erstellen Sie Ihr venv mit dem folgenden Befehl. Beachten Sie, dass my-env nur der Name dieser Umgebung ist. Sie können es beliebig benennen:

$ python3 -m venv my-env

Hinweis: Einige Python3-Installationen, wie die unter Windows verfügbaren, rufen den Python-Interpreter nur mit Python und nicht mit Python3 auf, aber das ändert sich von System zu System. Aus Gründen der Konsistenz werde ich nur Python3 verwenden.

Nachdem der Befehl ausgeführt wurde, sehen Sie einen neuen Ordner ~/project1/my-evn. Um die virtuelle my-env-Umgebung zu aktivieren, müssen Sie:

  1. Lauf,
    $source ~/project1/my-env/bin/activate wenn Sie Bash verwenden.
    Es gibt alternative Skripte namens Activate.fischen und aktivieren.csh für Leute, die Fisch bzw. Csh-Muscheln verwenden.
  2. Unter Windows kann das Skript aufgerufen werden, indem Sie Folgendes ausführen:
    >.\my-env\Scripts\aktivieren.Schläger wenn Sie die Eingabeaufforderung verwenden, oder,
    >.\my-env\Scripts\aktivieren.ps1 wenn Sie PowerShell verwenden.

Verwenden virtueller Umgebungen

Sobald Sie das Skript erfolgreich ausgeführt haben, werden Sie feststellen, dass sich die Eingabeaufforderung in etwa wie unten gezeigt ändert. Sie können jetzt Pakete mit pip installieren:

(my-env) $ pip3 Installationsanfragen
## Wir können die installierten Pakete mit dem Befehl 'pip Freeze' auflisten
(my-env) $ pip3 einfrieren
Zertifikat==2018.10.fünfzehn
chardett==3.0.4
idna==2.7
pkg-Ressourcen==0.0.0
Anfragen==2.20.1
urllib3==1.24.1

Solange die virtuelle Umgebung aktiv ist (wie durch die Eingabeaufforderung angezeigt), werden alle Pakete nur im Verzeichnis der virtuellen Umgebung (my-env) gespeichert, egal wo Sie sich im Dateisystem befinden.

Um die virtuelle Umgebung zu verlassen, können Sie deaktivieren in die Eingabeaufforderung eingeben und Sie werden wieder die systemweite Installation von Python verwenden. Sie können feststellen, dass die neuen Pakete, die wir gerade installiert haben, in der globalen pip-Installation nicht angezeigt werden.

Um die virtuelle Umgebung loszuwerden, löschen Sie einfach den my-env-Ordner, der nach dem Ausführen des Moduls erstellt wurde. Sie können so viele dieser Umgebungen erstellen, wie Sie möchten.

Fazit

Mit dem venv-Modul sind virtuelle Umgebungen jetzt als Standardfunktion von Python verfügbar, insbesondere wenn Sie von Python installieren.org. Früher hatten wir viele Implementierungen von Drittanbietern namens virtualenv, pyenv usw.

Dies führte zu immer mehr aufgeblähter Software wie Anaconda, die besonders bei Datenwissenschaftlern beliebt ist. Es ist gut, endlich ein einfaches Tool zum Verwalten von Python-Paketen zu haben, ohne viel anderen, nicht verwandten Junk installieren zu müssen. Hier kannst du mehr über venv lesen.

Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...