Erste Schritte mit virtuellen Umgebungen in Python

In diesem Artikel erfahren Sie, wie Sie mit virtuellen Umgebungen in Python sowohl in Windows- als auch in Linux-Betriebssystemen beginnen.

Wenn Sie mit der Arbeit an mehreren Projekten in Ihrer lokalen Entwicklungsumgebung beginnen, treten häufig Abhängigkeitsprobleme auf. Das Erstellen virtueller Umgebungen für jedes Ihrer Projekte kann Ihnen dabei helfen, Abhängigkeiten und Projektanforderungen besser zu verwalten.

Um den Vorteil virtueller Umgebungen in Python zu nutzen, lernen wir, virtuelle Umgebungen zu erstellen und zu aktivieren. 👩🏽‍💻

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 verwenden?

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 außerdem sicher, dass es keine Breaking Changes gibt, wenn zwei oder mehr Projekte unterschiedliche Versionen verwenden. Lassen Sie uns dies genauer verstehen.

Pakete in Python installieren

Die Python-Standardbibliothek wird mit mehreren nützlichen Modulen für Unit-Tests, Interaktion mit dem Betriebssystem, Arbeit mit Datums- und Uhrzeitangaben und mehr geliefert.

Wenn Sie jedoch an Python-Projekten arbeiten, müssen Sie häufig andere Pakete installieren, die von der Python-Community 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 verwenden.

Jedes Projekt erfordert einen bestimmten Satz von Paketen, die Sie installieren müssen. Wenn Sie jedoch alle Pakete in Ihrer Entwicklungsumgebung auf Ihrem lokalen Computer installieren, teilen sich alle Projekte die global installierten Pakete.

Warum ist das ein Problem?

Nun, vielleicht haben Sie N Pakete in Ihrer Entwicklungsumgebung. Das Projekt, an dem Sie derzeit arbeiten, erfordert jedoch möglicherweise nur 3 davon. Wenn alle Ihre Projekte gemeinsame Installationen verwenden, ist es sehr schwierig zu identifizieren, welches der Projekte welches der installierten Pakete benötigt – die mit jedem Projekt verbundenen Abhängigkeiten.

Dieser Ansatz hat eine weitere Einschränkung. Angenommen, Sie haben ein Django 2.2-Projekt in Ihrer Projektbibliothek. Sie beschließen, an einem Projekt zu arbeiten, das Django 4 verwendet. Sie installieren also die neueste Version von Django in derselben Entwicklungsumgebung.

Was passiert mit der bestehenden Installation?

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

Fassen wir unsere bisherige Diskussion zusammen: Die Abhängigkeitsverwaltung wird schwierig, wenn die Pakete alle in einer gemeinsamen Umgebung installiert sind, da die Projekte ihre eigenen Bibliotheken benötigen, um ausgeführt zu werden.

  So blockieren Sie jemanden auf Strava

Wie virtuelle Umgebungen funktionieren

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

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

Wenn Sie sich das Beispiel der Django-Projekte noch einmal ansehen, können Sie mit virtuellen Umgebungen sowohl Django 2.2- als auch Django 4-Projekte ausführen – ohne Konflikte. Denn die Django-Installationen sind keine systemweiten Installationen mehr, sondern beschränken sich auf die virtuellen Umgebungen der jeweiligen Projekte.

Im Wesentlichen: Virtuelle Umgebungen sind isolierte Umgebungen, die sowohl den Code als auch die Abhängigkeiten für ein Projekt enthalten.

Vorteile virtueller Umgebungen

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

  • Virtuelle Umgebungen bieten eine isolierte Entwicklungsumgebung für einzelne Projekte, die es uns ermöglicht, nur die Pakete zu installieren, die für das jeweilige Projekt benötigt werden.
  • Da die virtuellen Umgebungen von Projekten sowohl unabhängig als auch isoliert sind, können verschiedene Projekte je nach Anforderung unterschiedliche Versionen derselben Bibliothek verwenden. Mit virtuellen Umgebungen müssen Sie sich keine Gedanken über Systemberechtigungen machen, um Bibliotheken zu installieren und die Entwicklungsumgebung einzurichten.
  • Nachdem Sie Pakete in einer virtuellen Umgebung installiert haben, können Sie die Abhängigkeiten des Projekts in einer „requirements.txt“-Datei erfassen. Dadurch können andere Entwickler die Entwicklung und Umgebung des Projekts replizieren und die erforderlichen Pakete mit einem einzigen Befehl installieren.

Bisher haben Sie die Funktionsweise virtueller Umgebungen und die Vorteile ihrer Verwendung kennengelernt. Sehen wir uns einige beliebte Tools an, mit denen Sie virtuelle Umgebungen in Python erstellen und verwalten können.

#1. Virtualenv

Virtualenv ist eines der weit verbreiteten Tools zum Erstellen und Verwalten virtueller Umgebungen für Python-Projekte. Eine Teilmenge der Funktionalität von virtualenv ist im venv-Paket verfügbar. Das virtualenv-Paket ist jedoch im Vergleich zu venv schneller und erweiterbar.

#2. Pipenv

Mit pipnev haben Sie sowohl die Funktionalität der virtuellen Umgebung von virtualenv als auch die Paketverwaltungsfunktionen von pip. Es verwendet verwaltete Pipfiles, um Projektabhängigkeiten innerhalb einer virtuellen Umgebung zu verwalten.

Auf diesem Pipenv-Spielplatz können Sie pipenv direkt im Browser ausprobieren.

#3. Konda

Wenn Sie die Anaconda-Distribution von Python für die Entwicklung verwenden, können Sie conda für die Paketverwaltung und zum Erstellen virtueller Umgebungen verwenden.

  Sagen Sie Ihrer Mutter, dass Ihr iPhone-Akku schwach ist, damit sie sich keine Sorgen macht

Weitere Informationen finden Sie in diesem umfassenden Leitfaden zum Verwalten von Umgebungen mit Conda.

#4. Poesie

Poetry ist ein Paketverwaltungstool, mit dem Sie Abhängigkeiten über alle Python-Projekte hinweg verwalten können. Um Poetry verwenden zu können, muss Python 3.7 oder eine neuere Version installiert sein.

#5. Venv

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

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

So erstellen Sie eine virtuelle Python-Umgebung in Ubuntu

💬 Um dem Rest dieses Tutorials folgen zu können, benötigen Sie eine lokale Installation von Python 3. Stellen Sie sicher, dass Sie Python 3.5 oder eine neuere Version ausführen.

In diesem Abschnitt werden die Schritte zum Erstellen und Aktivieren virtueller Umgebungen auf einem Ubuntu-Linux-Computer beschrieben. Die gleichen Schritte können auch auf anderen Linux-Distributionen verwendet werden.

Lassen Sie uns zur einfacheren Verwaltung ein Projektverzeichnis erstellen und in dieses cd; Wir erstellen venv in diesem Verzeichnis.

$ mkdir my_project
$ cd my_project

Die allgemeine Syntax zum Erstellen einer virtuellen Umgebung für Ihr Python-Projekt lautet python3 -m venv . Beim Ausführen dieses Befehls wird im aktuellen Arbeitsverzeichnis eine virtuelle Umgebung namens my_env erstellt:

$ python3 -m venv my_env

So aktivieren und installieren Sie Pakete in einer virtuellen Umgebung

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

$ source my_env/bin/activate

Nachdem Sie eine virtuelle Umgebung aktiviert haben, können Sie den Befehl pip list ausführen, um die Liste der installierten Pakete abzurufen:

$ pip list

Bisher haben wir noch kein Paket installiert, daher sollten Sie setuptools und pip – standardmäßig installiert – in jeder der erstellten virtuellen Umgebungen sehen können.

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

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

$ pip install requests

Wenn Sie die Anforderungsbibliothek installieren, sehen Sie, dass die Anforderungsbibliothek zusammen mit allen Paketen installiert wird, die von ihr benötigt werden.

  Wie man jemanden über das Telefon aufweckt

$ pip list

Sie können den Befehl pip freeze verwenden und die Ausgabe wie gezeigt in eine requirements.txt-Datei umleiten:

$ pip freeze > requirements.txt

Wenn Sie den Inhalt des aktuellen Projektverzeichnisses untersuchen, sehen Sie, dass die Datei requirements.txt erstellt wurde.

$ 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

So erstellen Sie eine virtuelle Python-Umgebung in Windows

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

Wenn Sie sich auf einem Windows-Computer befinden, 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

Das Aktivieren virtueller Umgebungen auf einem Windows-Computer ist unterschiedlich, je nachdem, ob Sie an der Eingabeaufforderung oder in Windows PowerShell arbeiten.

Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die virtuelle Umgebung zu aktivieren:

> <path-to-venv>Scriptsactivate.bat

Wenn Sie alternativ Windows PowerShell verwenden, wird durch Ausführen dieses Befehls die virtuelle Umgebung aktiviert:

> <path-to-venv>ScriptsActivate.ps1

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

Um virtuelle Umgebungen zu deaktivieren, können Sie den Deactivate-Befehl ausführen – sowohl an der Eingabeaufforderung als auch in Windows PowerShell.

Fazit

In diesem Artikel haben wir die Einschränkungen systemweiter Installationen besprochen und wie sie die Abhängigkeitsverwaltung über Python-Projekte hinweg erschweren. Virtuelle Umgebungen in Python bieten eine Möglichkeit, Abhängigkeiten besser zu verwalten und gleichzeitig eine isolierte Entwicklungsumgebung für einzelne Projekte bereitzustellen.

Unter den weit verbreiteten Tools zum Erstellen und Verwalten virtueller Umgebungen in Python haben Sie gelernt, wie Sie venv verwenden – das in die Python-Standardbibliothek integriert ist, um virtuelle Umgebungen zu erstellen und zu aktivieren.

Innerhalb der dedizierten virtuellen Umgebung eines Projekts können projektspezifische Versionen von Bibliotheken installiert werden. Diese Anforderungen können dann in einer requirements.txt-Datei erfasst werden, die es anderen Entwicklern ermöglicht, die Projektumgebung einfach zu replizieren.

Achten Sie beim Start Ihres nächsten Python-Projekts darauf, virtuelle Umgebungen für ein besseres Abhängigkeitsmanagement zu verwenden. Viel Spaß beim Programmieren!🎉