Virtuelle Umgebung

Herzlichen Glückwunsch, wenn du es bis hier hin geschafft hast, dann haste schon alle Basics der Programmierung hinter dich und ab dem nächsten Kapitel fangen wir mit dem Datascience-ischen Part. Dafür müssen wir auch Thirdparty Packages installieren mit dem pip Python Package Manager, der mit der Python Installierung per Konsole aufrufbar sein sollte. Daher lohnt es sich mal anzuschauen wie moderne Python Projekte aufgesetzt werden.

Virtuelle Umgebungen, oder "virtual environments", ermöglichen es uns Packages und Libraries auf Projektebene zu installieren. Wenn wir pip einfach so benutzen, um Python Packages zu installieren, dann werden all dieses Packages system-weit installiert. Das ist auch nicht so schlimm, aber wenn wir mehr als zwei Projekte haben, die das selbe Package brauchen, aber verschiedene Versionen davon, dann tauchen Probleme auf...

Deshalb sind "virtual environments" wie venv so geil und venv ist mega einfach aufzusetzen!

Packages und Libraries, die wir installieren müssen, damit unser Projekt funktioniert, nennt man auch "dependencies".

venv

In der Konsole gebe diesen Befehl ein, in dem Ordner, indem du dein Python Projekt aufsetzten möchtest.

python -m venv env

Der Befehl erstellt mit venv eine virtuelle Umgebung, die ich env genannt habe. Der Name ist egal. Viele benutzen auch den Namen des Projekts mit "_env" oder irgendwas dahinter. Ich finde "env" schon klar genug.

Mit dem Befehl wird ein neuer Ordner "env" erstellt. Innerhalb diesem Ordner interessiert uns eigentlich nur der "bin" Ordner. In dem "bin" Ordner gibt es viele verschiedene Skripts für viele verschiedene "Shells".

In der Konsole musst du in den Projektordner cd und dann diesen Befehl, je nach Betriebsystem, ausfüheren:

  • Windows: venv\bin\activate.ps1
  • macOS: source venv/bin/activate
  • Ubuntu: source venv/bin/activate

Nun können wir mit der selben Konsole, mit der wir die virtuelle Umgebung gestartet haben, pip ganz normal benutzten, aber alle Packages werden nur innerhalb dieser Umgebung installiert, und außerhalb des Projektes weiß existieren diese Packages nicht. Das ist genau, dass was wir wollen, denn somit haben wir unser Projekt mehr isoliert und gehen sicher, dass auch alles funktioniert; denn je mehr Isolierung desto weniger Außenfaktoren gibt es die uns beim Programmieren stören könnten.