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.