English English French French Spanish Spanish German German
Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Erste Schritte mit virtuellen Umgebungen in Python

Virtuelle Umgebungen in Python
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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. 👩🏽‍💻

What Are Virtual Environments?

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.

Allerdings beim Weiterarbeiten Python-Projekte, müssen Sie oft 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 verwenden Pip.

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.

local-dev-env

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.

Versions-Diff

Fassen wir unsere bisherige Diskussion zusammen: Das Abhängigkeitsmanagement wird schwierig, wenn die Pakete alle in einer gemeinsamen Umgebung installiert sind, da die Projekte ihre eigenen Bibliotheken zu rennen.

How Virtual Environments Work

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 installieren einzige diese Pakete, die sind falls angefordert für das aktuelle Projekt.

python-virtuelle-umgebungen

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 isoliert Umgebungen, die sowohl den Code als auch die Abhängigkeiten für ein Projekt enthalten.

Advantages of Virtual Environments

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, sodass wir nur die Pakete installieren können, 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 verwendet werden anders Versionen der gleich Bibliothek – je nach Anforderung. Mit virtuellen Umgebungen müssen Sie sich keine Gedanken über Systemberechtigungen machen, um Bibliotheken zu installieren und die Entwicklungsumgebung einzurichten.
  • Sobald Sie Pakete in einer virtuellen Umgebung installiert haben, können Sie dies tun Erfassen Sie die Abhängigkeiten des Projekts in einer requirements.txt-Datei. Dadurch können andere Entwickler die Entwicklung und Umgebung des Projekts replizieren und die erforderlichen Pakete mit einem einzigen Befehl installieren.

Tools to Create Virtual Environments

Tools-zum-Erstellen-virtueller-Umgebungen

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

virtuelle Umgebung 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 erhältlich venv Paket. Allerdings ist die virtualenv Paket ist im Vergleich zu schneller und erweiterbar venv.

#2. Pipenv

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

Sie können es ausprobieren pipenv direkt aus dem Browser auf diese Pipenv-Spielplatz.

#3. Konda

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

Um mehr zu erfahren, sehen Sie sich diesen umfassenden Leitfaden an Verwalten von Umgebungen mit conda.

#4. Poesie

Poesie 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, venv bietet eine Teilmenge der Funktionalität von virtualenv aber es hat den Vorteil, dass es in die Python-Standardbibliothek eingebaut ist, beginnend mit Python 3.3.

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. ✅

How to Create a Python Virtual Environment 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 auf anderen verwendet werden Linux-Distributionen sowie.

Lassen Sie uns zur einfacheren Verwaltung ein Projektverzeichnis erstellen und cd hinein; Wir werden 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 <venv-name-or-path>. Beim Ausführen dieses Befehls wird eine virtuelle Umgebung aufgerufen my_env wird im aktuellen Arbeitsverzeichnis 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 die ausführen pip list Befehl, um die Liste der installierten Pakete abzurufen:

$ pip list
Bild-3

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

Die Installation von pip innerhalb der virtuellen Umgebung können Sie Pakete installieren, die für das jeweilige Projekt benötigt werden; deshalb hast du eine eigenständige Entwicklungsumgebung für jedes Projekt.

Nachdem Sie die virtuelle Umgebung aktiviert haben, können Sie mit pip projektspezifische Pakete darin installieren. Lassen Sie uns als Beispiel installieren Python-Anfragen, 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.

install-bibliotheken-in-python-virtueller-umgebung
$ pip list
view-libraries-in-python-virtual-environment

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

$ 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

How to Create a Python Virtual Environment in Windows

Im Allgemeinen wird eine Linux-Umgebung für die Entwicklung bevorzugt. Wenn Sie sich auf einem Windows-Computer befinden, können Sie die Verwendung von in Betracht ziehen Windows-Subsystem für Linux (WSL) 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 arbeiten Powershell.

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

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

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

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

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

Um virtuelle Umgebungen zu deaktivieren, können Sie die ausführen deactivate Befehl – ​​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 man sie verwendet venv – 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.

Wenn Sie Ihre nächste beginnen Python-Projekt, stellen Sie sicher, dass Sie virtuelle Umgebungen für eine bessere Abhängigkeitsverwaltung verwenden. Viel Spaß beim Programmieren!🎉

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Macht Ihr Geschäft
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder