8 Virtuelle Umgebungen
Virtuelle Umgebungen sind ein grundlegendes Konzept in der Softwareentwicklung und Data Science. Sie ermöglichen es, isolierte Arbeitsbereiche für verschiedene Projekte zu erstellen. In diesen Umgebungen können Python-Pakete oder -Bibliotheken und deren Abhängigkeiten separat installiert und verwaltet werden. Dies ist besonders wichtig für Data Science-Projekte, die oft spezifische Versionen von Bibliotheken benötigen.
Um die folgenden Erläuterungen zu vereinfachen, werden wir nicht immer streng zwischen Bibliotheken und Paketen unterscheiden, sondern hauptsächlich den Begriff Python-Pakete verwenden, wenn wir Python-Software importieren.
Eine virtuelle Umgebung ist im Wesentlichen ein eigenständiger Ordner, der alle notwendigen ausführbaren Dateien enthält, um Python-Pakete zu verwenden. Jede virtuelle Umgebung hat ihre eigene Python-Installation, unabhängig von der globalen Python-Installation auf dem Computer.
Virtuelle Umgebungen bieten mehrere entscheidende Vorteile:
- Projekttrennung:
- Verschiedene Data Science-Projekte können unterschiedliche Anforderungen haben.
- Ein Projekt könnte beispielsweise TensorFlow für Deep Learning verwenden, während ein anderes scikit-learn für traditionelles Machine Learning einsetzt.
- Virtuelle Umgebungen ermöglichen es, diese Projekte sauber voneinander zu trennen.
- Abhängigkeitsverwaltung:
- Jedes Data Science-Projekt kann unterschiedliche Versionen von Bibliotheken erfordern.
- Virtuelle Umgebungen stellen sicher, dass die korrekten Versionen aller benötigten Pakete für jedes spezifische Projekt verfügbar sind.
- Dies verhindert Konflikte zwischen verschiedenen Paketen und gewährleistet Reproduzierbarkeit.
- Einfache Weitergabe und Reproduzierbarkeit:
- Die Spezifikationen einer virtuellen Umgebung können in einer Datei gespeichert werden.
- Dies erleichtert es anderen, die exakt gleiche Umgebung zu reproduzieren, was für die Zusammenarbeit in Data Science-Teams unerlässlich ist.
8.1 Virtuelle Umgebung erstellen
Das Erstellen einer virtuellen Umgebung ist ein wichtiger erster Schritt für jedes Data Science-Projekt. Hier wird der Prozess Schritt für Schritt erklärt:
Zugriff auf die Anaconda-Eingabeaufforderung oder das Terminal:
- Windows: Öffnen der Anaconda-Eingabeaufforderung über das Startmenü. Dies ist eine spezielle Eingabeaufforderung, die bereits mit Anaconda konfiguriert ist.
- macOS-Benutzer: Terminal öffnen.
Erstellen der Umgebung:
- Diesen Befehl verwenden, um die virtuelle Umgebung zu erstellen:
conda create --name basics python=3.12 pip
Nach Eingabe des Befehls wird gefragt:
Proceed ([y]/n)?
y
eingeben und Enter drücken, um die Installation zu starten.
Erklärung des Befehls:
conda create
: Dies ist der Befehl zum Erstellen einer neuen Conda-Umgebung.--name basics
: Dies legt den Namen der Umgebung fest. Hier wird sie “basics” genannt.python=3.12
: Dies spezifiziert die Python-Version, die in der Umgebung verwendet werden soll.pip
: Dies installiert pip in der neuen Umgebung, was für die spätere Paketinstallation wichtig ist.
Was ist pip?pip ist das Standard-Paketverwaltungssystem für Python. Es steht für “Pip Installs Packages” oder “Pip Installs Python”. Mit pip können Python-Pakete aus dem Python Package Index (PyPI), dem offiziellen Repository für Python-Software von Drittanbietern, installiert, aktualisiert und entfernt werden.
Aktivieren der Umgebung
- Nach der Erstellung muss die Umgebung aktiviert werden:
conda activate basics
- Nach der Aktivierung ändert sich die Eingabeaufforderung, um anzuzeigen, dass die Umgebung
basics
jetzt aktiv ist (und nicht mehr diebase
-Umgebung). - Dies bedeutet, dass alle folgenden Python-Befehle und Paketinstallationen in dieser isolierten Umgebung ausgeführt werden.
Installieren der benötigten Pakete
- Mit aktivierter Umgebung können nun die erforderlichen Pakete installieren:
pip install numpy pandas openpyxl matplotlib seaborn altair jupyter ipykernel
Dieser Befehl installiert eine Reihe von grundlegenden Data Science-Paketen:
Detaillierte Erklärung der installierten Pakete- numpy: Für numerische Berechnungen in Python.
- pandas: Ein leistungsfähiges Tool für Datenmanipulation und -analyse. Es bietet Datenstrukturen wie DataFrames, die besonders nützlich für tabellarische Daten sind.
- openpyxl: Lesen und Schreiben von Excel-Dateien (.xlsx). Wird oft in Verbindung mit Pandas verwendet, um mit Excel-Daten zu arbeiten.
- matplotlib: Erstellung von Visualisierungen in Python.
- seaborn: Erstellung statistischer Grafiken.
- altair: Eignet sich besonders gut für die Erstellung interaktiver und komplexer Grafiken mit wenig Code.
- jupyter: Ein wichtiges Tool für interaktives Computing und Datenanalyse.
- ipykernel: Ermöglicht die Ausführung von Python-Code in Jupyter Notebooks.
Wir verwenden ausschließlich
pip
für die Paketinstallation und nicht die ebenfalls gängige Methodeconda install
, die von der Anaconda Distributuion bereitgestellt wird. Dies dient dazu, potenzielle Konflikte zwischen Conda- und Pip-installierten Paketen zu vermeiden und eine konsistente Paketverwaltung sicherzustellen.Überprüfen der Paketinstallation
- Nach der Installation ist es wichtig zu überprüfen, ob alle Pakete korrekt installiert wurden:
- Wie öffnen ein Jupyter Notebook in der aktivierten Umgebung, indem wir folgenden Befehl eingeben:
jupyter-notebook
- Nun einen neuen Notebook öffnen und diesen Code in einer Code-Zelle ausführen:
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import altair as alt
- Wenn keine Fehlermeldungen auftreten, wurden die Pakete erfolgreich installiert.
Die Verwendung von Aliasen (wie bspw. np für numpy) beim Import von Bibliotheken ist eine gängige Praxis in der Data Science-Community. Sie verbessert die Lesbarkeit des Codes und reduziert den Schreibaufwand.
Erklärung der Standard-Aliase- np für NumPy: Ermöglicht einen kurzen, prägnanten Zugriff auf NumPys umfangreiche Funktionen für numerische Operationen.
- pd für Pandas: Bietet eine kompakte Schreibweise für Pandas’ leistungsstarke Datenmanipulationstools.
- plt für Matplotlib: Vereinfacht das Aufrufen von Matplotlib-Funktionen zum Erstellen und Anpassen von Grafiken.
- sns für Seaborn: Erleichtert den Zugriff auf Seaborns statistische Visualisierungstools, die nahtlos mit Matplotlib integriert sind.
- alt für Altair: Ermöglicht einen schnellen Zugriff auf Altairs deklarative Visualisierungssyntax für interaktive Darstellungen.
Deaktivieren der Umgebung
- Nach Abschluss der Arbeit in der virtuellen Umgebung ist es gute Praxis, diese zu deaktivieren:
conda deactivate
- Dies bringt uns zurück zur Basisumgebung.
- Es ist wichtig, die Umgebung zu deaktivieren, um versehentliche Änderungen an der falschen Umgebung zu vermeiden.
Das Erstellen und Verwenden einer separaten virtuellen Umgebung gewährleistet, dass der Arbeitsbereich isoliert, stabil und reproduzierbar bleibt. Dies ist besonders wichtig für die Zusammenarbeit in Teams und die langfristige Wartbarkeit von Projekten.