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\activatestattbin/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:
- Lokal:
.venv/bin/activate— die projektspezifische Virtual Environment, erstellt mitpython3 -m venv .venv. - 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
.venvinnerhalb eines Projekts erstellst, das zuvor die globale verwendete, erinnere dich daran,pyonerneut 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.