Preparing your experience...

Schnelles Python venv Laden — Lokal Zuerst, Dann Global

— 2 Min. Lesezeit

Der Wechsel zwischen Python-Projekten sollte instant sein. Das folgende Muster gibt dir diese Geschwindigkeit mit einem einzigen Befehl: prüfe nach einem lokalen .venv im aktuellen Verzeichnis und falle zurück auf ein globales ~/.venv, falls keines lokal existiert.

Hinweis: Dieser Leitfaden deckt macOS und Linux (bash / zsh) ab. Windows verwendet stattdessen Scripts\activate statt bin/activate, und Pfade nutzen \ statt /. Passe die Funktion entsprechend an oder nutze sie in Git Bash / WSL, wo bash verfügbar ist.

Die Funktion

Füge dies zu deiner ~/.bashrc (oder ~/.zshrc) hinzu:

pyon() {
    if [ -f "./.venv/bin/activate" ]; then
        source "./.venv/bin/activate"
    elif [ -f "$HOME/.venv/bin/activate" ]; then
        source "$HOME/.venv/bin/activate"
    else
        echo "pyon: no venv found in ./.venv or ~/.venv" >&2
        return 1
    fi
}

Lade dann deine Shell-Konfiguration mit source ~/.bashrc und du bist fertig.

Wie es funktioniert

Führe pyon aus jedem Verzeichnis heraus aus. Die Funktion prüft zwei Speicherorte in Reihenfolge:

  1. Lokal: .venv/bin/activate — die projektspezifische Virtual Environment, erstellt mit python3 -m venv .venv.
  2. Global: ~/.venv/bin/activate — deine persönliche Allzweck-Umgebung für Projekte, die keine eigene venv mitliefern.

Falls keines existiert, gibt es eine Fehlermeldung aus und beendet sich mit Code 1, damit du sofort weißt, dass etwas nicht stimmt.

Die globale venv einrichten

Für Projekte ohne lokale Virtual Environment, richte einmalig eine einzige globale ein:

python3 -m venv ~/.venv

Dann führe pyon in jedem Projektverzeichnis aus — es aktiviert automatisch diese gemeinsame Umgebung.

Achtung: Wenn du eine neue lokale .venv innerhalb eines Projekts erstellst, das zuvor die globale verwendete, erinnere dich daran, pyon erneut vom Projektverzeichnis aus auszuführen. Die Funktion wird beim Aufruf aufgelöst, nicht beim Shell-Start.

Warum das manuellen Quellen überlegen ist

Der herkömmliche Ansatz besteht darin, jedes Mal den vollständigen Pfad zu merken und einzutippen:

source my-project/.venv/bin/activate

Das bricht sofort zusammen, sobald du die Verzeichnisse wechselst oder mit mehreren Projekten arbeitest. Mit pyon tippst du ein Wort — egal wo du bist — und es findet die richtige Umgebung für dich. Es funktioniert auch in Unterverzeichnissen, was entspricht der Art und Weise, wie die meisten Entwickler durch ihre Projektordner navigieren.

Deaktivieren

Wie bei jeder Virtual Environment beendest du mit:

deactivate

Dies stellt deine Shell auf das System-Python zurück. Die pyon-Funktion selbst greift nicht in deactivate ein.

TenolifeTENOLIFE