Heim >System-Tutorial >LINUX >Tutorial zur Einrichtung einer Python-Umgebung mit Virtualenv

Tutorial zur Einrichtung einer Python-Umgebung mit Virtualenv

WBOY
WBOYnach vorne
2024-01-03 19:50:01999Durchsuche

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 nennen
Mac: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.

Zusammenfassung

Virtualenv 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen