Ä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 importierenDas 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-venvAls nächstes gehen wir in das Verzeichnis, in das Ihr Virtual -Umgebungsverzeichnis erstellt werden soll. Für mich ist es ~/project1
$ cd ~/project1Erstellen 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 -envHinweis: 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:
$ source ~/project1/my-env/bin/aktivieren
Wenn Sie Bash verwenden.>.\ 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 AnfragenSolange 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.
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.