Bei der Entwicklung von Python-Anwendungen ist nur eine Version von Python3 auf dem System installiert: 3.4. Alle Pakete von Drittanbietern werden von pip im Verzeichnis site-packages von Python3 installiert.
Wenn wir mehrere Anwendungen gleichzeitig entwickeln möchten, verwenden diese Anwendungen dasselbe Python, nämlich Python 3, das auf dem System installiert ist. Was passiert, wenn Anwendung A Jinja 2.7 und Anwendung B Jinja 2.6 erfordert?
In diesem Fall muss jede Anwendung möglicherweise über eine eigene „unabhängige“ Python-Laufumgebung verfügen. virtualenv wird verwendet, um eine „isolierte“ Python-Laufumgebung für eine Anwendung zu erstellen.
Zuerst installieren wir Virtualenv mit pip:
$ pip3 install virtualenv
Angenommen, wir möchten ein neues Projekt entwickeln und benötigen eine unabhängige Python-Laufumgebung, können wir Folgendes tun:
Der erste Schritt besteht darin, ein Verzeichnis zu erstellen:
Mac:~ michael$ mkdir myproject Mac:~ michael$ cd myproject/ Mac:myproject michael$
Der zweite Schritt besteht darin, eine unabhängige Python-Laufumgebung zu erstellen und sie venv:
zu nennenMac:myproject michael$ virtualenv --no-site-packages venv Using base prefix '/usr/local/.../Python.framework/Versions/3.4' New python executable in venv/bin/python3.4 Also creating executable in venv/bin/python Installing setuptools, pip, wheel...done.
Der Befehl virtualenv kann eine unabhängige Python-Laufumgebung erstellen. Wir haben außerdem den Parameter --no-site-packages hinzugefügt, sodass alle Pakete von Drittanbietern, die in der System-Python-Umgebung installiert wurden, nicht kopiert werden. Auf diese Weise erhalten wir eine „saubere“ Python-Laufumgebung ohne Pakete von Drittanbietern.
Die neu erstellte Python-Umgebung wird im Verzeichnis venv unter dem aktuellen Verzeichnis abgelegt. Mit der Python-Umgebung venv können Sie source verwenden, um die Umgebung aufzurufen:
Mac:myproject michael$ source venv/bin/activate (venv)Mac:myproject michael$
Beachten Sie, dass sich die Eingabeaufforderung geändert hat. Es gibt ein Präfix (venv), das darauf hinweist, dass die aktuelle Umgebung eine Python-Umgebung mit dem Namen venv ist.
Installieren Sie verschiedene Pakete von Drittanbietern wie gewohnt und führen Sie den pythonBefehl aus:
(venv)Mac:myproject michael$ pip install jinja2 ... Successfully installed jinja2-2.7.3 markupsafe-0.23 (venv)Mac:myproject michael$ python myapp.py ...
In der venv-Umgebung werden mit pip installierte Pakete in der venv-Umgebung installiert und die System-Python-Umgebung wird in keiner Weise beeinträchtigt. Mit anderen Worten: Die venv-Umgebung wurde speziell für die myproject-Anwendung erstellt.
Um die aktuelle venv-Umgebung zu verlassen, verwenden Sie den Befehl deactivate:
(venv)Mac:myproject michael$ deactivate Mac:myproject michael$
An diesem Punkt sind Sie zur normalen Umgebung zurückgekehrt. Jetzt werden Pip oder Python in der System-Python-Umgebung ausgeführt.
Es ist durchaus möglich, für jede Anwendung eine unabhängige Python-Laufumgebung zu erstellen, sodass die Python-Umgebung jeder Anwendung isoliert werden kann.
Wie erstellt virtualenv eine „unabhängige“ Python-Laufumgebung? Das Prinzip ist sehr einfach: Kopieren Sie das System-Python in die Virtualenv-Umgebung und geben Sie mit dem Befehl source venv/bin/activate eine Virtualenv-Umgebung ein. Virtualenv ändert die relevanten Umgebungsvariablen so, dass die Befehle python und pip verwendet werden Zeigen Sie auf die aktuelle Virtualenv-Umgebung.
ZusammenfassungVirtualenv bietet eine isolierte Python-Laufumgebung für Anwendungen und löst das Problem von Multiversionskonflikten zwischen verschiedenen Anwendungen.
Das obige ist der detaillierte Inhalt vonTutorial zur Einrichtung einer Python-Umgebung mit Virtualenv. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!