Neulich haben wir einen Anfängerleitfaden zum Verwalten von Python-Paketen mit PIP veröffentlicht . In diesem Handbuch haben wir besprochen, wie pip installiert wird und wie Python-Pakete mit pip installiert, aktualisiert und deinstalliert werden. Wir haben auch die Bedeutung virtueller Umgebungen besprochen und wie man eine virtuelle Umgebung mit den Tools venv und virtualvnv erstellt. Heute lernen wir einen weiteren Python-Paketmanager namens pipenv kennen . Es ist das neue empfohlene Python-Packaging-Tool von Python.org. Es kann verwendet werden, um Python-Abhängigkeiten einfach zu installieren und zu verwalten, ohne virtuelle Umgebungen erstellen zu müssen. Pipenv erstellt und verwaltet automatisch eine virtuelle Umgebung für Ihre Projekte. Es fügt auch Pakete aus Ihrem Pipfile hinzu/entfernt sie, wenn Sie Pakete installieren/deinstallieren.
Warum Pipenv?
Pipenv behebt die folgenden Echtzeitprobleme:
- Sie müssen keine virtuelle Umgebung mehr erstellen. Pipenv erstellt automatisch virtualenv für Ihre Projekte. Um es einfach auszudrücken:pip und virtualenv arbeiten zusammen.
- Verwalten einer requirements.txt Datei kann problematisch sein, daher verwendet Pipenv stattdessen das kommende Pipfile und Pipfile.lock, was für grundlegende Anwendungsfälle überlegen ist.
- Es ist sicher. Hashes werden immer und überall verwendet. Sicherheitslücken automatisch aufdecken.
- Sehen Sie sich jederzeit das Abhängigkeitsdiagramm an.
- Optimieren Sie den Entwicklungsworkflow, indem Sie .env-Dateien laden.
Nun, fangen wir an.
Installieren Sie Pipenv, das offiziell empfohlene Python-Packaging-Tool
Es gibt viele Möglichkeiten, Pipenv zu installieren. Wir werden zwei offiziell empfohlene Methoden sehen.
1. Installation von pipenv mit pip
Der offiziell empfohlene Weg ist die Verwendung von pip . Stellen Sie sicher, dass Sie Python und Pip installiert haben. Wenn nicht, lesen Sie unseren vorherigen Leitfaden, der im ersten Absatz dieses Artikels verlinkt ist.
Führen Sie nach der Installation von pip den folgenden Befehl aus, um pipenv zu installieren.
$ pip install --user pipenv
Dieser Befehl installiert pipenv auf Benutzerebene (d. h. nicht systemweit). Wenn pipenv nach der Installation nicht in Ihrer Shell verfügbar ist, müssen Sie möglicherweise das binäre Verzeichnis Ihrer Benutzerbasis hinzufügen zu deinem WEG. Wenn Sie Ihre Benutzerbasis nicht kennen, führen Sie den folgenden Befehl aus, um sie herauszufinden:
$ python -m site --user-base
Sie werden eine Ausgabe wie unten sehen.
/home/sk/.local
Wie Sie in der obigen Ausgabe sehen können, ist mein Benutzerbasisverzeichnis /home/sk/.local , und das Binärverzeichnis meiner Basis ist /home/sk/.local/bin . Klar? Gut. Fügen Sie dies nun Ihrem PATH hinzu. Bearbeiten Sie dazu Ihr ~/.profile Datei:
$ vi ~/.profile
Fügen Sie diese Zeile am Ende hinzu:
export PATH="$HOME/.local/bin:$PATH"
Drücken Sie ESC drücken und :wq eingeben um die Datei zu speichern und zu beenden. Führen Sie dann den folgenden Befehl aus, um die Änderungen zu übernehmen.
$ source ~/.profile
Führen Sie abschließend den folgenden Befehl aus:
$ pipenv --update
Um pipenv jederzeit zu aktualisieren, führen Sie den folgenden Befehl aus:
$ pip install --user --upgrade pipenv
2. Installation von pipenv mit pipsi
Pipsi ist ein leistungsstarkes Tool, mit dem Sie Python-Skripte in isolierten virtuellen Umgebungen installieren können.
Um pipsi zu installieren, führen Sie Folgendes aus:
$ curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get-pipsi.py | python
Folgen Sie den Anweisungen auf dem Bildschirm, Sie müssen Ihren PATH aktualisieren.
Führen Sie nach der Installation von pipsi die folgenden Befehle aus, um pipenv zu installieren:
$ pipsi install pew $ pipsi install pipenv
Führen Sie abschließend den folgenden Befehl aus:
$ pipenv --update
Um pipenv jederzeit zu aktualisieren, führen Sie einfach Folgendes aus:
$ pipsi upgrade pipenv
Python-Pakete mit Pipenv verwalten
Führen Sie 'pipenv' in Ihrer Shell aus, um die Liste der verfügbaren Befehle und allgemeinen Optionen anzuzeigen.
$ pipenv
Beispielausgabe wäre:
Pakete installieren
Erstellen Sie ein neues Projekt oder wechseln Sie in das Verzeichnis des vorhandenen Projekts.
$ mkdir myproject $ cd myproject
Installieren Sie die Pakete für Ihr Projekt:
$ pipenv install requests
Wenn Sie ls in das Verzeichnis Ihres Projekts (d. h. myproject in diesem Fall) werden Sie zwei Dateien sehen, nämlich Pipfile und Pipfile.lock . Das Pipfile enthält Informationen des neu installierten Pakets wie Name, Version usw. Sie können dieses Pipfile verwenden, um zu verfolgen, welche Abhängigkeiten Ihr Projekt benötigt, wenn Sie das Projekt neu installieren oder mit anderen teilen möchten.
$ cat Pipfile
Und die Pipfile.lock enthält Ihre Systeminformationen, alle Abhängigkeiten des installierten Pakets einschließlich ihrer Version und alle Hashes für alle installierten Pakete und ihre Abhängigkeiten.
$ cat Pipfile.lock
Installieren Sie nun ein weiteres Paket und überprüfen Sie den Inhalt der beiden Dateien erneut. Sie werden feststellen, dass das Pidfile jetzt zwei Pakete enthält. Und Pidfile.lock enthält alle Abhängigkeiten der installierten Pakete, einschließlich ihrer Version, und alle Hashes für alle installierten Pakete und ihre Abhängigkeiten. Um es einfach auszudrücken, diese beiden Dateien werden jedes Mal automatisch aktualisiert, wenn Sie ein neues Paket installieren.
Hast du bemerkt? Ich habe keine virtuellen Umgebungen erstellt. Pipenv hat automatisch eine virtuelle Umgebung für mein Projekt erstellt. Sie fragen sich, wo Ihre Projekte gespeichert sind? Führen Sie einfach diesen Befehl aus, um den Standort Ihrer virtuellen Umgebung zu erfahren.
$ pipenv --venv /home/sk/.local/share/virtualenvs/myproject-x7-2XYPN
Führen Sie Folgendes aus, um die Home-Details Ihres Projekts anzuzeigen:
$ pipenv --where /home/sk/myproject
Wie Sie in den beiden Ausgaben sehen können, "/home/sk/myproject" ist das Home-Verzeichnis meines Projekts und "/home/sk/.local/share/virtualenvs/myproject-x7-2XYPN" ist meine virtuelle Umgebung.
Sie können in Ihre virtuelle Umgebung "ls" eingeben, um zu überprüfen, was sich dort befindet.
$ ls /home/sk/.local/share/virtualenvs/myproject-x7-2XYPN
Pakete aktualisieren
Um alle Pakete zu aktualisieren, führen Sie Folgendes aus:
$ pipenv update
Dieser Befehl deinstalliert alle Pakete und installiert Paket(e) auf die neuesten kompatiblen Versionen.
Integrität eines Pakets prüfen
Machen Sie sich Sorgen, ob es Sicherheitslücken in den installierten Paketen gibt? Kein Problem! Pipenv steht hinter Ihnen. Um die Integrität von Paketen zu prüfen, führen Sie einfach den folgenden Befehl aus:
$ pipenv check Checking PEP 508 requirements… Passed! Checking installed package safety… All good!
Der obige Befehl prüft auf Sicherheitslücken und auf PEP 508-Markierungen, die in der Pipfile bereitgestellt werden.
Abhängigkeitsdiagramm anzeigen
Lassen Sie uns 'pipenv graph' ausführen und sehen, was passiert.
$ pipenv graph
Wie Sie sehen können, zeigt dieser Befehl das Abhängigkeitsdiagramm an.
Paket deinstallieren
Um ein Paket zu entfernen, führen Sie Folgendes aus:
$ pipenv uninstall requests Un-installing speedtest-cli… Uninstalling speedtest-cli-1.0.7: Successfully uninstalled speedtest-cli-1.0.7 Removing speedtest-cli from Pipfile… Locking [dev-packages] dependencies… Locking [packages] dependencies… Updated Pipfile.lock (c23e27)!
Führen Sie Folgendes aus, um alles zu deinstallieren:
$ pipenv uninstall --all Un-installing all packages from virtualenv… Found 1 installed package(s), purging… Environment now purged and fresh!
Führen Sie für weitere Details Folgendes aus:
$ pipenv -h
Oder,
$ pipenv --man
Soweit ich getestet habe, ist Pipenv viel einfacher zu verwenden als Pip. Da es offiziell von Python.org empfohlen wird, können Sie venv und virtualenv jetzt vollständig loswerden, wenn Sie Python-Pakete installieren.
Empfohlene Lektüre:
- Pipx – Python-Anwendungen in isolierten Umgebungen installieren und ausführen