Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Entwicklung Zuletzt aktualisiert: September 13, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

In diesem Artikel erfahren Sie, wie Sie mit virtuellen Umgebungen in Python sowohl unter Windows als auch unter Linux arbeiten können.

Wenn Sie mit der Arbeit an mehreren Projekten in Ihrer lokalen Entwicklungsumgebung beginnen, stoßen Sie häufig auf Probleme mit Abhängigkeiten. Die Einrichtung virtueller Umgebungen für jedes Ihrer Projekte kann Ihnen helfen, Abhängigkeiten und Projektanforderungen besser zu verwalten.

Um die Vorteile von virtuellen Umgebungen in Python zu nutzen, lernen wir, wie man virtuelle Umgebungen erstellt und aktiviert. 👩🏽‍💻

Was sind virtuelle Umgebungen?

Virtuelle Umgebungen sind isolierte und unabhängige Umgebungen, die den Code und die Abhängigkeiten eines Projekts enthalten.

Aber warum sollten Sie virtuelle Umgebungen nutzen?

Nun, virtuelle Umgebungen ermöglichen es Ihnen, verschiedene Versionen derselben Bibliotheken für verschiedene Projekte zu installieren und zu verwenden. Die Verwendung virtueller Umgebungen stellt auch sicher, dass es keine Änderungen gibt, wenn zwei oder mehr Projekte unterschiedliche Versionen verwenden. Lassen Sie uns dies im Detail verstehen.

Installieren von Paketen in Python

Die Python-Standardbibliothek enthält mehrere nützliche Module für Unit-Tests, die Interaktion mit dem Betriebssystem, die Arbeit mit Datums- und Zeitangaben und vieles mehr.

Bei der Arbeit an Python-Projektemüssen Sie oft andere Pakete installieren, die von der Python-Gemeinschaft entwickelt wurden. Dies gilt insbesondere für Anwendungen wie Web Scraping zur Datenerfassung, maschinelles Lernen und Webanwendungen.

Um diese Pakete zu installieren und zu verwalten, können Sie conda oder pip.

Jedes Projekt erfordert eine bestimmte Anzahl von Paketen, die Sie installieren müssen. Wenn Sie jedoch alle Pakete in Ihrer Entwicklungsumgebung auf Ihrem lokalen Rechner installieren, nutzen alle Projekte die global installierten Pakete gemeinsam.

local-dev-env

Warum ist dies also ein Problem?

Nun, Sie haben vielleicht N Pakete in Ihrer Entwicklungsumgebung. Das Projekt, an dem Sie gerade arbeiten, benötigt aber vielleicht nur 3 davon. Wenn alle Ihre Projekte gemeinsame Installationen haben, ist es sehr schwierig zu erkennen, welches der Projekte welche der installierten Pakete benötigt - die Abhängigkeiten, die mit jedem Projekt verbunden sind.

Es gibt eine weitere Einschränkung bei diesem Ansatz. Angenommen, Sie haben ein Django 2.2-Projekt in Ihrer Projektbibliothek. Sie beschließen, mit der Arbeit an einem Projekt zu beginnen, das Django 4 verwendet. Sie installieren also die neueste Version von Django in derselben Entwicklungsumgebung.

Was geschieht mit der bestehenden Anlage?

Sie wird entfernt und durch die von Ihnen installierte Version von Django ersetzt. Bei neueren stabilen Versionen können bestimmte Funktionen veraltet sein. Und Ihre früheren Django-Projekte funktionieren möglicherweise nicht mehr wie erwartet.

version-diff

Zusammenfassend lässt sich sagen, dass die Verwaltung von Abhängigkeiten schwierig wird, wenn alle Pakete in einer gemeinsamen Umgebung installiert sind, weil die Projekte ihre eigenen Sätze von Bibliotheken zu laufen.

Wie virtuelle Umgebungen funktionieren

Bislang haben wir die Herausforderungen gesehen, die mit der Installation von Paketen in einer globalen Entwicklungsumgebung verbunden sind (systemweite Installationen). Dies motiviert uns zu verstehen, wie virtuelle Umgebungen diese Einschränkung beheben.

Wenn Sie eine virtuelle Umgebung für Ihre Python-Projekte erstellen und aktivieren, können Sie Folgendes installieren nur die Pakete, die erforderlich für das aktuelle Projekt.

python-virtuelle-umgebungen

Um auf das Beispiel der Django-Projekte zurückzukommen: Mit virtuellen Umgebungen können Sie sowohl Django 2.2- als auch Django 4-Projekte laufen lassen - ohne dass es zu Konflikten kommt. Das liegt daran, dass die Django-Installationen keine systemweiten Installationen mehr sind, sondern sich auf die virtuellen Umgebungen der jeweiligen Projekte beschränken.

Kurz gesagt: Virtuelle Umgebungen sind isoliert Umgebungen, die sowohl den Code als auch die Abhängigkeiten für ein Projekt enthalten.

Vorteile von virtuellen Umgebungen

Vorteile-virtueller-Umgebungen

Nachdem Sie nun gelernt haben, wie virtuelle Umgebungen in Python funktionieren, lassen Sie uns die Vorteile ihrer Verwendung aufzählen:

  • Virtuelle Umgebungen bieten eine isolierte Entwicklungsumgebung für einzelne Projekte, so dass wir nur die für das jeweilige Projekt erforderlichen Pakete installieren können.
  • Da die virtuellen Umgebungen der Projekte sowohl unabhängig als auch isoliert sind, können verschiedene Projekte die verschiedene Versionen der dieselbe Bibliothek - je nach den Anforderungen. Mit virtuellen Umgebungen müssen Sie sich keine Gedanken über Systemberechtigungen für die Installation von Bibliotheken und die Einrichtung der Entwicklungsumgebung machen.
  • Sobald Sie Pakete in einer virtuellen Umgebung installiert haben, können Sie die Abhängigkeiten des Projekts zu erfassen in einer Datei requirements.txt. Dies ermöglicht es anderen Entwicklern, die Entwicklung und Umgebung des Projekts zu replizieren und die erforderlichen Pakete mit einem einzigen Befehl zu installieren.

Tools zur Erstellung virtueller Umgebungen

Werkzeuge zur Erstellung virtueller Umgebungen

Bisher haben Sie gelernt, wie virtuelle Umgebungen funktionieren und welche Vorteile sie haben. Nun wollen wir uns einige beliebte Tools ansehen, die Sie zum Erstellen und Verwalten virtueller Umgebungen in Python verwenden können.

#1. Virtualenv

Virtualenv ist eines der am weitesten verbreiteten Werkzeuge zur Erstellung und Verwaltung virtueller Umgebungen für Python-Projekte. Eine Teilmenge der Funktionalität von virtualenv ist verfügbar in der venv Paket. Allerdings ist die virtualenv Paket ist schneller und erweiterbar im Vergleich zu venv.

#2. Pipenv

Mit pipnevhaben Sie sowohl die Funktionalität der virtuellen Umgebung von virtualenv und Paketverwaltungsfunktionen von pip. Es verwendet verwaltet pipfiles, um Projektabhängigkeiten innerhalb einer virtuellen Umgebung zu verwalten.

Sie können ausprobieren pipenv direkt aus dem Browser auf dieser Pipenv Spielplatz.

#3. Conda

Wenn Sie die Anaconda-Verteilung von Python für die Entwicklung verwenden, dann können Sie conda für die Paketverwaltung und für die Erstellung virtueller Umgebungen.

Weitere Informationen finden Sie in diesem umfassenden Leitfaden über Verwaltung von Umgebungen mit conda.

#4. Poesie

Poesie ist ein Paketverwaltungswerkzeug, mit dem Sie Abhängigkeiten in allen Python-Projekten verwalten können. Um Poetry verwenden zu können, müssen Sie Python 3.7 oder eine neuere Version installiert haben.

#5. Venv

Wie bereits erwähnt, venv bietet eine Teilmenge der Funktionalität von virtualenv aber es hat den Vorteil, dass es ab Python 3.3 in die Python-Standardbibliothek integriert ist.

Es ist bereits mit der Python-Installation verfügbar und erfordert keine Installation externer Pakete. In diesem Lernprogramm werden wir es verwenden, um virtuelle Umgebungen zu erstellen und mit ihnen zu arbeiten. ✅

Wie man eine virtuelle Python-Umgebung in Ubuntu erstellt

💬 Um dem Rest dieses Tutorials folgen zu können, müssen Sie eine lokale Installation von Python 3 haben. Stellen Sie sicher, dass Sie Python 3.5 oder eine neuere Version verwenden.

In diesem Abschnitt werden die Schritte zur Erstellung und Aktivierung virtueller Umgebungen auf einem Ubuntu-Linux-Rechner beschrieben. Die gleichen Schritte können auch auf anderen Linux-Distributionen auch.

Um die Verwaltung zu erleichtern, erstellen wir ein Projektverzeichnis und cd in sie hinein; Wir erstellen venv innerhalb dieses Verzeichnisses.

$ mkdir my_project
$ cd my_project

Die allgemeine Syntax zur Erstellung einer virtuellen Umgebung für Ihr Python-Projekt lautet python3 -m venv <venv-name-or-path>. Nach Ausführung dieses Befehls wird eine virtuelle Umgebung namens my_env wird im aktuellen Arbeitsverzeichnis erstellt:

$ python3 -m venv my_env

Aktivieren und Installieren von Paketen innerhalb einer virtuellen Umgebung

Nachdem Sie die virtuelle Umgebung erstellt haben, können Sie sie aktivieren und die erforderlichen Pakete darin installieren. Um die virtuelle Umgebung zu aktivieren, können Sie den folgenden Befehl ausführen:

$ source my_env/bin/activate

Sobald Sie eine virtuelle Umgebung aktiviert haben, können Sie die pip list um die Liste der installierten Pakete zu erhalten:

$ pip list
Bild-3

Bis jetzt haben wir noch kein Paket installiert, daher sollten Sie in der Lage sein, zu sehen setuptools und pip-die standardmäßig in jeder der erstellten virtuellen Umgebungen installiert werden.

Die Installation von pip innerhalb der virtuellen Umgebung ermöglicht es Ihnen, Pakete zu installieren, die für das jeweilige Projekt benötigt werden; aus diesem Grund haben Sie eine eigenständige Entwicklungsumgebung für jedes Projekt.

Nachdem Sie nun die virtuelle Umgebung aktiviert haben, können Sie mit pip projektspezifische Pakete darin installieren. Lassen Sie uns zum Beispiel Folgendes installieren Python-Anfragen, eines der am häufigsten heruntergeladenen Python-Pakete, das mehrere nützliche Funktionen zum Senden von HTTP-Anfragen für die Arbeit mit Web-APIs bietet.

$ pip install requests

Wenn Sie die Anforderungsbibliothek installieren, werden Sie sehen, dass die Anforderungsbibliothek zusammen mit allen Paketen installiert wird, die für sie erforderlich sind.

install-libraries-in-python-virtual-environment
$ pip list
view-libraries-in-python-virtual-environment

Sie können die pip freeze und leiten Sie die Ausgabe in eine Datei requirements.txt um, wie gezeigt:

$ pip freeze > requirements.txt

Wenn Sie sich den Inhalt des aktuellen Projektverzeichnisses ansehen, werden Sie feststellen, dass die Datei requirements.txt erstellt worden ist.

$ ls
# my_env requirements.txt

Sie können die virtuelle Umgebung deaktivieren, nachdem Sie an dem Projekt gearbeitet haben, indem Sie den folgenden Befehl ausführen:

$ deactivate

Wie man eine virtuelle Python-Umgebung unter Windows erstellt

Im Allgemeinen wird für die Entwicklung eine Linux-Umgebung bevorzugt. Wenn Sie mit einem Windows-Rechner arbeiten, können Sie das Programm Windows-Subsystem für Linux (WSL) um eine Ubuntu-Terminalumgebung für die lokale Entwicklung einzurichten.

Wenn Sie auf einem Windows-Rechner arbeiten, können Sie entweder die Windows PowerShell oder die Eingabeaufforderung verwenden und mit dem folgenden Befehl virtuelle Umgebungen erstellen:

> python -m venv <path-to-venv>

So aktivieren Sie eine virtuelle Umgebung

Die Aktivierung virtueller Umgebungen auf einem Windows-Rechner ist unterschiedlich, je nachdem, ob Sie mit der Eingabeaufforderung oder mit dem Windows PowerShell.

Wenn Sie sich in der Eingabeaufforderung befinden, führen Sie den folgenden Befehl aus, um die virtuelle Umgebung zu aktivieren:

> <path-to-venv>\Scripts\activate.bat

Wenn Sie Windows PowerShell verwenden, können Sie auch diesen Befehl ausführen, um die virtuelle Umgebung zu aktivieren:

> <path-to-venv>\Scripts\Activate.ps1

Sie können alle erforderlichen Pakete innerhalb der virtuellen Umgebung installieren.

Um virtuelle Umgebungen zu deaktivieren, können Sie den Befehl deactivate sowohl in der Eingabeaufforderung als auch in Windows PowerShell.

Schlussfolgerung

In diesem Artikel haben wir die Einschränkungen von systemweiten Installationen besprochen und wie sie die Verwaltung von Abhängigkeiten zwischen Python-Projekten erschweren. Virtuelle Umgebungen in Python bieten eine Möglichkeit, Abhängigkeiten besser zu verwalten und gleichzeitig eine isolierte Entwicklungsumgebung für einzelne Projekte zu schaffen.

Unter den weit verbreiteten Tools zur Erstellung und Verwaltung virtueller Umgebungen in Python haben Sie gelernt, wie man venv - die in die Python-Standardbibliothek integriert ist, um virtuelle Umgebungen zu erstellen und zu aktivieren.

Innerhalb der dedizierten virtuellen Umgebung eines Projekts können projektspezifische Bibliotheksversionen installiert werden. Diese Anforderungen können dann in einer Datei requirements.txt festgehalten werden, so dass andere Entwickler die Projektumgebung leicht nachbilden können.

Wenn Sie Ihr nächstes Projekt beginnen Python-ProjektVerwenden Sie unbedingt virtuelle Umgebungen für eine bessere Verwaltung der Abhängigkeiten. Viel Spaß beim Programmieren!🎉

  • Bala Priya C
    Autor
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Entwicklung
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder