Mit Beispielen erläuterte virtuelle Python-Umgebungen

Virtuelle Umgebungen können als isolierte Installationsverzeichnisse beschrieben werden. Diese Isolation ermöglicht es Ihnen, die Installation der Abhängigkeiten Ihres Projekts zu lokalisieren, ohne dass Sie gezwungen sind, sie systemweit zu installieren.

Stellen Sie sich vor, Sie haben zwei Anwendungen, App1 und App2. Beide verwenden das Paket Pak, erfordern jedoch unterschiedliche Versionen. Wenn Sie Pak Version 2.3 für App1 installieren, können Sie App2 nicht ausführen, da Version 3.1 erforderlich ist.

Hier bieten sich virtuelle Umgebungen an.

Leistungen:

  • Sie können mehrere Umgebungen mit mehreren Paketsätzen ohne Konflikte zwischen ihnen haben. Auf diese Weise können die Anforderungen verschiedener Projekte gleichzeitig erfüllt werden.
  • Sie können Ihr Projekt problemlos mit eigenen abhängigen Modulen freigeben.

Hier sind zwei Möglichkeiten, wie Sie virtuelle Python-Umgebungen erstellen können.

Virtualenv

virtualenvist ein Tool zum Erstellen isolierter Python-Umgebungen. Es wird ein Ordner erstellt, der alle erforderlichen ausführbaren Dateien enthält, um die Pakete zu verwenden, die ein Python-Projekt benötigen würde.

Sie können es installieren mit pip:

pip install virtualenv

Überprüfen Sie die Installation mit dem folgenden Befehl:

virtualenv --version

Erstellen Sie eine Umgebung

So erstellen Sie eine virtuelle Umgebung:

virtualenv --no-site-packages my-env

Dadurch wird im aktuellen Verzeichnis ein Ordner mit dem Namen der Umgebung erstellt ( my-env/). Dieser Ordner enthält die Verzeichnisse zum Installieren von Modulen und ausführbaren Python-Dateien.

Sie können auch die Python-Version angeben, mit der Sie arbeiten möchten. Verwenden Sie einfach das Argument --python=/path/to/python/version. Zum Beispiel python2.7:

virtualenv --python=/usr/bin/python2.7 my-env

Listen Sie Umgebungen auf

Sie können die verfügbaren Umgebungen auflisten mit:

lsvirtualenv

Aktivieren Sie eine Umgebung

Bevor Sie die Umgebung verwenden können, müssen Sie sie aktivieren:

source my-env/bin/activate

Dies stellt sicher, dass nur Pakete unter my-env/verwendet werden.

Sie werden feststellen, dass der Name der Umgebung links von der Eingabeaufforderung angezeigt wird. Auf diese Weise können Sie sehen, welche Umgebung aktiv ist.

Pakete installieren

Sie können Pakete einzeln installieren oder eine requirements.txtDatei für Ihr Projekt festlegen.

pip install some-package pip install -r requirements.txt

Wenn Sie eine requirements.txtDatei aus den bereits installierten Paketen erstellen möchten , führen Sie den folgenden Befehl aus:

pip freeze > requirements.txt

Die Datei enthält die Liste aller in der aktuellen Umgebung installierten Pakete und ihre jeweiligen Versionen. Auf diese Weise können Sie Ihr Projekt mit eigenen abhängigen Modulen freigeben.

Deaktivieren Sie eine Umgebung

Wenn Sie mit der virtuellen Umgebung fertig sind, können Sie sie deaktivieren mit:

deactivate

Dadurch kehren Sie zum Standard-Python-Interpreter des Systems mit allen installierten Bibliotheken zurück.

Eine Umgebung löschen

Löschen Sie einfach den Umgebungsordner.

Conda

Conda ist ein Paket-, Abhängigkeits- und Umgebungsmanagement für viele Sprachen, einschließlich Python.

Befolgen Sie diese Anweisungen, um Conda zu installieren.

Erstellen Sie eine Umgebung

So erstellen Sie eine virtuelle Umgebung:

conda create --name my-env

Conda erstellt den entsprechenden Ordner im Conda-Installationsverzeichnis.

Sie können auch angeben, mit welcher Python-Version Sie arbeiten möchten:

conda create --name my-env python=3.6

Listen Sie Umgebungen auf

Sie können alle verfügbaren Umgebungen auflisten mit:

conda info --envs

Aktivieren Sie eine Umgebung

Bevor Sie die Umgebung verwenden können, müssen Sie sie aktivieren:

source activate my-env

Pakete installieren

Das gleiche wie bei virtualenv.

Deaktivieren Sie eine Umgebung

Wenn Sie mit der virtuellen Umgebung fertig sind, können Sie sie deaktivieren mit:

source deactivate

Entfernen Sie eine Umgebung

Wenn Sie eine Umgebung aus Conda entfernen möchten, verwenden Sie:

conda remove --name my-env