Python-Umgebungsverwaltung mit Pipenv

Hallo, mein Freund!


Ich gehe davon aus, dass pip und virtualenv weiterhin zur Steuerung der Python-Umgebung in Ihrem Projekt verwendet werden.


Wenn ja, lassen Sie mich Ihnen von einem Tool wie Pipenv erzählen.


Pipenv ist ein modernes Tool zum Verwalten der Arbeitsumgebung in Python.


Hauptmerkmale von pipenv:


  • Erstellen und Verwalten einer virtuellen Umgebung
  • Pipfile-Paketsynchronisierung während der Installation und Entfernung des Pakets
  • Automatisches Laden von Umgebungsvariablen aus einer ENV-Datei

Vergleichen Sie als gutes Beispiel die Verwendung von pip und virtualenv mit pipenv, um eine virtuelle Umgebung zu erstellen:


  1. pip und virtualenv


    $ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt 

  2. pipenv


     $ pipenv install Flask gunicorn 


Erste Schritte


Installieren Sie die neueste Version von pipenv:


 $ pip install pipenv 

Management der Arbeitsumgebung


Gehen wir zum Verzeichnis mit dem Python-Projekt und erstellen eine virtuelle Umgebung, in der die Version des Interpreters angegeben ist:


 $ cd yourproject $ pipenv --python 3.7 

Das Team erstellt automatisch eine neue virtuelle Umgebung für Ihr Projekt, sofern diese noch nicht vorhanden ist.


Sie können die virtuelle Umgebung des Projekts aktivieren, indem Sie den shell Befehl ausführen:


 $ pipenv shell 

Verwenden Sie den exit , um die Shell der virtuellen Umgebung zu beenden:


 $ exit 

Anwendungsabhängigkeitsmanagement


Verwenden Sie zum Installieren von Paketen den Befehl install :


 $ pipenv install Flask 

Pipenv installiert die neueste Version des Flask Pakets und fügt sie automatisch der Pip-Datei hinzu.


Während der Installation können wir eine bestimmte Version des Pakets angeben:


 $ pipenv install Flask==1.0.2 

Die Entwickler dieses Tools haben sich auch um die Arbeit mit der Entwicklungsumgebung gekümmert - den Paketen, die in der Phase der Montage oder des Testens von Anwendungen benötigt werden.


Wenn Sie das Flag --dev angeben, wird das Paket als Teil der Entwicklungsumgebung installiert:


 $ pipenv install pytest --dev 

Um alle Pakete einschließlich der Entwicklungsumgebungspakete zu installieren, müssen Sie Folgendes ausführen:


 $ pipenv install --dev 

Zum Deinstallieren von Paketen gibt es einen uninstall :


 $ pipenv uninstall Flask 

Informationen zu installierten Paketen und ihren Abhängigkeiten werden in der Datei Pipfile.lock gespeichert, die automatisch generiert wird und vom Benutzer nicht geändert werden sollte.


Quellcode ausführen


Es ist möglich, den Quellcode in der virtualenv-Shell auszuführen:


 $ pipenv run python yourapplication.py 

Wenn eine ENV-Datei vorhanden ist, $ pipenv run Befehle $ pipenv shell und $ pipenv run automatisch Umgebungsvariablen daraus:


 $ cat .env DEBUG=1 $ echo $DEBUG 1 

Anwendungsbereitstellung


Mit Pipenv können Sie Abhängigkeiten auf dem übergeordneten System installieren, indem Sie das Flag --system :


 $ pipenv install --system 

Dies ist nützlich, wenn Sie Anwendungen in Docker bereitstellen.


Wenn Sie das Flag --deploy angeben, gibt pipenv einen Fehler aus, wenn Pipfile.lock veraltet ist oder die Python-Version nicht mit der angegebenen übereinstimmt.


Dockerfile-Beispiel für die Arbeit mit pipenv:


 FROM python:3.7 RUN pip3 install pipenv WORKDIR /usr/src/app COPY Pipfile ./ COPY Pipfile.lock ./ RUN set -ex && pipenv install --deploy --system COPY . . 

Ein Beispiel für eine Flask-Anwendung mit Pipenv-Funktionen: github.com/fdhadzh/flask-pipenv-example .

Source: https://habr.com/ru/post/de413009/


All Articles