Python – Virtuell Environments

Beim Entwicklen von Python Projekten, setzt man meistens auch zusätzliche Module ein, die zuerst installiert werden müssen. Eine Möglichkeit ist, diese einfach global im Betriebsystem zu installieren. Eine gute Idee ist dies jedoch nicht. Besser ist es, diese direkt an das Projekt zu binden. So kommt man sich auch nicht mit anderen Projekten in die quere und kann unterschiedliche Versionen in unterschiedlichen Projekten einsetzen. Auch dritte können dann einfacher das Projekt bei sich installieren.

Eine Möglichkeit hierzu wäre Docker. Aber auch Python direkt hat was im Angebot, worum es hier geht. Das Virtuelle Environment.

Installation

Mit pip3 muss nur einmalig virtualenv installiert werden:

Erzeugen eines Environments

Pro Projekt kann nun die Umgebung erzeugt werden. Dazu wechselt man zunächst in das Projektverzeichnis, um dort das folgende Auszuführen. X wird hier durch die gewünschte Versionsnummer ersetzt. Tab completion hilft:

Mac User finden ihren Python Interpreter in /usr/local/bin. Was nun angelegt wurde ist der Ordner ENV, welcher alle Module und Pakete enthält, welche wir nun installieren. Dazu müssen wir das Environment aber zunächst noch starten.

Verwenden des Environments

Im Projektfolder, führ man folgendes Kommando aus:

Ab nun können wir in dieser Umgebung arbeiten. Der Python Interpreter ist nun auch automatisch auf den beim anlegen angegebenen gesetzt und anstelle pip3 kann pip verwendet werden.

Zum beenden des Environments reicht folgendes Kommando:

Ein Tipp, den ENV Folder würde ich nicht in die Versionskontrolle des Projektes aufnehmen.

Tipp zu Paketen

Kleiner Tipp, alle Pakete die im Environment mit pip installiert wurden, können einfach angezeigt werden:

Die Ausgabe dieses Kommandos kann ganz einfach in eine Datei, z.B. requirements.txt umgeleitet werden.

Und mit dieser Datei, kann man ein frisches Environment einfacher aufsetzten:

Deploy mit UWSGI

Das Environement kann auch ziemlich einfach mit UWSGI verwendet werden. Notwendig dazu ist eine uwsgi.ini file:

Sowie ein kleines Script, welches die Application zur Verfügung stellt, Beispielsweise beim Flask (app.wsgi):

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.