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 lassen Tonnen von Ordnern und Dateien zurück. Sie benötigen viele andere (obskure) Pakete, die auch nach den Dingen zurückgelassen werden. Langsam aber sicher aufbauen sich diese Dinge in Ihrer Workstation auf und obwohl sie möglicherweise keinen erheblichen Teil Ihres Festplattenraums aufbauen, können sie andere Probleme verursachen.

Ältere Abhängigkeiten

Ältere Pakete können herumwirren und Ihr Python -Code wird sie gerne verwenden. Dies ist kein Problem, wenn Ihre Python -Skripte vor Ort und nicht für industrielle Zwecke laufen sollen. Datenwissenschaftler, Studenten und sogar reguläre Menschen, die ihre tägliche Aufgabe automatisieren.

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

Anfrage importieren

Das von AWS Lambda gelieferte Anfragepaket unterscheidet sich von Ihrem älteren. Infolgedessen kann das Programm abbrechen.

Konflikte

Konflikte können auch in das Bild kommen, auf dem verschiedene Projekte verschiedene Versionen desselben Pakets verwenden. Vielleicht benötigen einige Ihrer älteren Projekte die älteren PIP -Pakete. Vielleicht benötigen Sie das neuere Paket für andere Projekte. Ausführen von PIP Installation -U wird das Paket in Ihrem Betriebssystem aufrüsten und Probleme verursachen, wenn Sie wieder Ihre älteren Projekte pflegen.

Virtuelle Python -Umgebungen

Wenn Sie eine Version von Python oben 3 verwenden.5, Sie können ein integriertes Modul namens Venv verwenden, um sogenannte Python-Virtual-Umgebungen zu erstellen. In diesem Modul erstellen Sie einen isolierten Ordner oder Verzeichnis, in dem alle PIP -Pakete und andere Abhängigkeiten leben können. Der Ordner enthält auch ein "aktivierendes" Skript darin. Wenn Sie eine bestimmte virtuelle Umgebung verwenden möchten, führen Sie dieses Skript einfach aus, wonach nur auf die in diesem Ordner enthaltenen Pakete zugegriffen werden können. Wenn Sie die PIP -Installation ausführen, werden die Pakete in diesem Ordner und nirgendwo sonst installiert. Nachdem Sie mit 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 den PIP -Paket -Manager nicht einmal in Ihrem gesamten System installieren. PIP kann nur in Ihrer virtuellen Umgebung existieren, wenn Sie es so bevorzugen.

Installieren von Venv und Erstellen virtueller Umgebungen

Ubuntu 18.04 LTS kommt mit Python 3 aus der Box.6.x, aber das Python -Venv -Modul ist nicht installiert, und es ist auch nicht PIP. Lassen Sie uns nur das Venv installieren.

$ apt installieren python3-venv

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

$ cd ~/project1

Erstellen Sie Ihr Venv mit dem folgenden Befehl. Beachten Sie, dass das My-Env nur der Name dieser Umgebung ist. Sie können ihn nennen, was Sie wollen:

$ python3 -m venv my -env

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

Nachdem der Befehl die Ausführung beendet hat, werden Sie einen neuen Ordner ~/project1/my-evn bemerken. Um die virtuelle My-Env-Umgebung zu aktivieren, müssen Sie:

  1. Laufen,
    $ source ~/project1/my-env/bin/aktivieren Wenn Sie Bash verwenden.
    Es gibt alternative Skripte, die als Aktivierung bezeichnet werden.Fisch und aktivieren.CSH für Menschen, die Fisch- bzw. CSH -Muscheln verwenden.
  2. Unter Windows kann das Skript durch Ausführen aufgerufen werden:
    >.\ my-env \ scripts \ aktivieren.Schläger Wenn Sie die Eingabeaufforderung verwenden, oder,
    >.\ my-env \ scripts \ aktivieren.PS1 Wenn Sie PowerShell verwenden.

Verwenden von virtuellen Umgebungen

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

(my-env) $ pip3 Installieren Sie Anfragen
## Wir können die installierten Pakete mit dem Befehl 'Pip Freeze' auflisten
(my-env) $ pip3 einfrieren
certifi == 2018.10.15
Chardet == 3.0.4
idna == 2.7
pkg-resources == 0.0.0
Anfragen == 2.20.1
urllib3 == 1.24.1

Solange die virtuelle Umgebung aktiv ist (wie die Eingabeaufforderung angegeben), werden alle Pakete nur im Virtual Environment Directory (My-Env) gespeichert, unabhängig davon, wo Sie sich im Dateisystem befinden.

Um aus der virtuellen Umgebung herauszukommen, können Sie deaktiviert in die Eingabeaufforderung eingeben und die systemweite Installation von Python wieder nutzen. Sie können feststellen, dass die neuen Pakete, die wir gerade installiert haben, nicht in der globalen PIP -Installation 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.

Abschluss

Mit dem Venv -Modul sind virtuelle Umgebungen jetzt als Standardfunktion von Python erhältlich, insbesondere wenn Sie bei Python installiert werden.Org. Früher hatten wir viele Implementierungen von Drittanbietern namens Virtualenv, Pyenv usw.

Dies führte zu immer mehr aufgeblähten Software wie Anaconda, insbesondere zu beliebten Datenwissenschaftlern. Es ist gut, endlich ein simpeltes Werkzeug für die Verwaltung von Python -Paketen zu haben, ohne viele andere nicht verwandte Müll installieren zu müssen. Sie können hier mehr über Venv lesen.