HOWTO · Python
Virtuelle Umgebungen in Python auflisten
In diesem Artikel diskutieren wir, was eine virtuelle Umgebung in Python ist, und einige Befehle, um sie aufzulisten.
Auf dieser Seite
Verwenden Sie lsvirtualenv oder workon ohne Argumente für Umgebungen, die von virtualenvwrapper verwaltet werden. Für Conda-Umgebungen verwenden Sie conda env list. Zum Auflisten müssen Sie eine Umgebung nicht aktivieren; der passende Manager muss jedoch in Ihrem Terminal verfügbar sein.
Virtuelle Umgebungen in Python auflisten
Es gibt keinen allgemeinen Python-Befehl, der alle Umgebungen auf Ihrem Computer auflistet. Welche Methode passt, hängt davon ab, wie Sie die Umgebungen erstellt und organisiert haben:
| Umgebungstool | Auflisten mit | Geltungsbereich |
|---|---|---|
| virtualenvwrapper | lsvirtualenv oder workon |
Umgebungen im konfigurierten Verzeichnis WORKON_HOME |
| Conda | conda env list |
Umgebungen, die der aktuellen Conda-Installation bekannt sind |
Einfaches venv oder virtualenv |
Die Verzeichnisse durchsuchen, in denen Sie sie erstellt haben | Kein gemeinsames Verzeichnis aller Umgebungen |
Eine virtuelle Umgebung stellt einem Projekt eine eigene Python-Umgebung mit eigenen installierten Paketen bereit. So können Project1 und Project2 beispielsweise unterschiedliche NumPy-Versionen verwenden, ohne dieselbe Installation wiederholt ändern zu müssen. Das verringert Abhängigkeitskonflikte, schließt aber nicht aus, dass innerhalb einer Umgebung inkompatible Pakete installiert werden.
Suchen Sie bei einfachen venv-Umgebungen in Ihren Projektverzeichnissen nach Ordnern wie .venv. Eine Datei namens pyvenv.cfg ist ein nützlicher Hinweis; ihre bloße Anwesenheit beweist jedoch nicht, dass die Umgebung noch funktioniert.
Das eigenständige Python-Beispiel erstellt zwei temporäre Umgebungen, listet ihre Namen auf und räumt sie anschließend wieder auf. Es durchsucht nur das temporäre übergeordnete Verzeichnis und gibt project1 und project2 in getrennten Zeilen aus.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
from pathlib import Path
from tempfile import TemporaryDirectory
import venv
with TemporaryDirectory() as directory:
root = Path(directory)
for name in ("project1", "project2"):
venv.EnvBuilder(with_pip=False).create(root / name)
for folder in sorted(root.iterdir()):
if folder.is_dir() and (folder / "pyvenv.cfg").is_file():
print(folder.name)
project1
project2
Um Ihre eigenen Umgebungen zu prüfen, verwenden Sie deren bekanntes übergeordnetes Verzeichnis, statt temporäre Umgebungen anzulegen. Diese Suche anhand eines Markers eignet sich für Verzeichnisse im Stil von venv; für Conda-Umgebungen verwenden Sie den eigenen Auflistungsbefehl von Conda.
Umgebungen mit virtualenvwrapper auflisten
Der Befehl lsvirtualenv gehört zu virtualenvwrapper, einer Sammlung von Shell-Werkzeugen zum Organisieren von Umgebungen, die mit virtualenv erstellt wurden. Wenn Sie nur virtualenv installieren, stehen diese Wrapper-Befehle nicht zur Verfügung.
Eine Bash-Einrichtung unter Linux oder macOS finden Sie in der offiziellen Anleitung zur Installation und Shell-Initialisierung von virtualenvwrapper. Der grundlegende Ablauf:
- Installieren Sie die Werkzeuge bei Bedarf mit
python3 -m pip install virtualenv virtualenvwrapperüber eine Python-Installation, die pip-Installationen zulässt. - Wählen Sie ein gemeinsames übergeordnetes Verzeichnis, zum Beispiel mit
export WORKON_HOME="$HOME/.virtualenvs", und erstellen Sie es anschließend mitmkdir -p "$WORKON_HOME". - Suchen Sie das installierte Skript
virtualenvwrapper.shund laden Sie es mitsource /actual/path/to/virtualenvwrapper.shin Ihre aktuelle Shell. Ersetzen Sie den Pfad durch den tatsächlichen Installationsort. - Führen Sie
lsvirtualenvaus oder verwenden Sielsvirtualenv -b, um eine kurze Namensliste zu erhalten. Zum Auflisten vorhandener Umgebungen müssen Sie keine weitere erstellen. Bei Bedarf erstellen Sie eine verwaltete Umgebung mitmkvirtualenv vEnv1.
Die offizielle Befehlsreferenz beschreibt lsvirtualenv und seine Auflistungsoptionen sowie workon zum Auflisten oder Aktivieren von Umgebungen.
Diese Einrichtungsbefehle sind nicht ausgeführte Anweisungen. Sie setzen die installierten Werkzeuge und eine kompatible Shell voraus. Die Installation allein initialisiert Ihre aktuelle Shell nicht. Wenn Sie die Einstellungen in künftigen Sitzungen nutzen möchten, fügen Sie die Verzeichniseinstellung und den Befehl zum Laden des Skripts in die passende Shell-Startdatei ein. Native Windows-Portierungen werden anders eingerichtet; nehmen Sie nicht an, dass diese Bash-Schritte für die Eingabeaufforderung oder PowerShell gelten.
Falls der Befehl nicht verfügbar ist, prüfen Sie die Installation und die Shell-Initialisierung. Wird der Befehl ausgeführt, listet aber keine Umgebungen auf, überprüfen Sie WORKON_HOME: Geben Sie in Bash mit printf '%s\n' "$WORKON_HOME" den Pfad aus und sehen Sie sich das konfigurierte Verzeichnis anschließend mit ls -la "$WORKON_HOME" an.
Setzen Sie WORKON_HOME auf das übergeordnete Verzeichnis Ihrer Umgebungsordner, nicht auf den Ordner einer einzelnen Umgebung. Die Standardpfade hängen von Plattform, Portierung und Konfiguration ab; ein Windows-Verzeichnis namens Envs ist nicht überall üblich. Eine Änderung dieser Variable beeinflusst, wo der Wrapper sucht. Sie verschiebt keine vorhandenen Umgebungen und findet auch keine Projektordner an anderen Speicherorten.
Conda-Umgebungen auflisten
Wenn Sie Umgebungen mit conda erstellt haben, führen Sie conda env list in einem Terminal aus, in dem Conda verfügbar ist, etwa in einer initialisierten Shell oder der Anaconda Prompt. Conda ist unter anderem in den Distributionen Anaconda und Miniconda enthalten.
Die Alternativen conda info --envs und conda info -e zeigen dieselbe Umgebungsliste an. Siehe dazu die offizielle Referenz für conda env list und die Optionen von conda info. Die Liste zeigt die Speicherorte und meist auch die Namen der Umgebungen; die aktive Umgebung ist mit einem Sternchen markiert. Umgebungen an benutzerdefinierten Pfaden werden möglicherweise hauptsächlich anhand ihres Pfads angezeigt. Namen und Speicherorte hängen von Ihrer Installation ab.
Sie können Umgebungen auflisten, ohne neue zu erstellen. Falls Sie für ein neues Projekt eine benötigen, erstellt conda create --name vEnv2 python eine benannte Umgebung mit Python. Ersetzen Sie den Namen durch den gewünschten Namen. Diese nicht ausgeführte, von Abhängigkeiten abhängige Anweisung kann Pakete herunterladen und eine Bestätigung anfordern.
Die Conda-Liste durchsucht nicht alle Umgebungen, die mit venv oder virtualenvwrapper erstellt wurden. Fehlt eine erwartete Conda-Umgebung, prüfen Sie, ob Sie die vorgesehene Conda-Installation und das richtige Benutzerkonto verwenden. Ist der Befehl selbst nicht verfügbar, öffnen Sie die Eingabeaufforderung der Distribution oder initialisieren Sie Conda für Ihre Shell, bevor Sie es erneut versuchen. Diese Manager-Befehle wurden hier nicht ausgeführt; es wird keine sitzungsspezifische Ausgabe behauptet.
Umgebungen mit workon auflisten
Auch der Befehl workon gehört zu virtualenvwrapper. Führen Sie nach der oben beschriebenen Einrichtung des Wrappers workon ohne Argumente aus, um die verfügbaren Umgebungen in WORKON_HOME aufzulisten. Dabei wird keine der Umgebungen aktiviert.
Mit einem Namen ändert sich die Funktion: workon vEnv1 aktiviert diese verwaltete Umgebung in der aktuellen Shell. Ersetzen Sie vEnv1 durch einen Namen aus Ihrer Liste. Diese Aktivierungsanweisung wurde nicht ausgeführt und setzt eine vorhandene verwaltete Umgebung voraus.
Wenn workon und lsvirtualenv eine Umgebung beide nicht anzeigen, prüfen Sie zuerst die gemeinsame Verzeichniskonfiguration, bevor Sie etwas neu erstellen. Ein Ordner, den Sie mit virtualenv vEnv1 in einem beliebigen Projektverzeichnis angelegt haben, wird dadurch nicht automatisch für den Wrapper sichtbar. Verwenden Sie die Auflistungsmethode, die zum tatsächlich verwendeten Manager und Speicherort passt.