Website-Suche

Wie man mehrere Python-Versionen mit Pyenv unter Linux verwaltet


Du bist ein Programmierer, der seinen Python-Code in mehreren verschiedenen Python-Umgebungen testen möchte. Was würdest du tun? Eine bestimmte Python-Version installieren und deinen Code testen, dann diese Version deinstallieren und eine andere Version installieren und den Code erneut testen? Nein, warte! Das ist nicht nötig. Lerne Pyenv kennen, ein Kommandozeilen-Tool, um mehrere Python-Versionen gleichzeitig zu verwalten. Es hat die Verwaltung von Python-Versionen einfacher als je zuvor gemacht. Es wird verwendet, um mehrere verschiedene Python-Versionen zu installieren, zu deinstallieren und zu wechseln.

Pyenv ermöglicht es Ihnen, die globale Python-Version pro Benutzer zu ändern, Unterstützung für projektbezogene Python-Versionen zu bieten, die Python-Version mit einer Umgebungsvariable zu überschreiben und Befehle aus mehreren Python-Versionen gleichzeitig zu durchsuchen. Pyenv kann verwendet werden, um Ihren Code in mehreren Python-Umgebungen zu testen. In diesem Tutorial werden wir zeigen, wie man Pyenv auf GNU/Linux installiert und verwendet.

Pyenv auf Linux installieren

Installieren Sie zunächst die folgenden Pakete, um die häufigen Build-Probleme zu vermeiden.

Für Debian-basierte Systeme:

$ sudo apt-get install -y make build-essential git libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev

Für RPM-basierte Systeme:

$ sudo yum install zlib-devel bzip2 bzip2-devel git readline-devel sqlite sqlite-devel openssl-devel xz xz-devel

Für SUSE/openSUSE:

$ sudo zypper in zlib-devel bzip2 libbz2-devel git readline-devel sqlite3 sqlite3-devel libopenssl-devel xz xz-devel

Wir haben gerade die notwendigen Voraussetzungen installiert. Es ist Zeit, Pyenv zu installieren. Die offizielle und empfohlene Methode zur Installation von Pyenv ist die Verwendung des Skripts pyenv-installer. Alles, was Sie tun müssen, ist, den folgenden Befehl in Ihrem Terminal auszuführen, um Pyenv zu installieren.

$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

Am Ende der Installation wird der Installer Sie benachrichtigen, Pyenv zu Ihrem PATH hinzuzufügen. In meinem Fall habe ich die folgenden Zeilen in meiner ~/.bash_profile-Datei hinzugefügt.

 export PATH="/home/ostechnix/.pyenv/bin:$PATH"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"

Führen Sie den unten stehenden Befehl aus, um die Änderungen wirksam werden zu lassen.

$ source ~/.bash_profile

Pyenv ist einsatzbereit. Nun lassen Sie uns sehen, wie man verschiedene Python-Versionen mit Pyenv verwaltet.

Verwalten mehrerer Python-Versionen mit Pyenv unter Linux

Zuerst sehen wir uns alle verfügbaren Versionen an. Dazu führen Sie einfach den folgenden Befehl aus:

$ pyenv install -l

Oder,

$ pyenv install --list

Du solltest eine Ausgabe in etwa wie unten erzeugen.

Available versions:
 2.1.3
 2.2.3
 2.3.7
 2.4
 2.4.1
 .
 .
 .
 3.6.2
 3.6.3
 3.6.4
 3.7.0b1
 3.7-dev
 3.8-dev
[...]

Um die derzeit installierten Python-Versionen aufzulisten:

$ pyenv versions
* system (set by /home/ostechnix/.pyenv/version)

Standardmäßig verwendet Pyenv unser systemweites Standard-Python. Hier * zeigt den Standard an.

Python installieren

Angenommen, Sie benötigen die Python-Versionen 2.7.14 und 3.6.4 auf Ihrem System.

Um dies zu tun, führen Sie einfach aus:

$ pyenv install 2.7.14

Um Python 3.6.4 zu installieren, führen Sie aus:

$ pyenv install 3.6.4

Sie benötigen keine Sudo-Rechte. Alle Python-Versionen werden unter einem separaten Verzeichnis im pyenv-Stammverzeichnis in Ihrem $HOME installiert. Das standardmäßige pyenv-Stammverzeichnis ist ~/.pyenv. Zum Beispiel wird Python 2.7.14 in meinem Fall unter /home/ostechnix/.pyenv/versions/2.7.14 installiert.

$ ls /home/ostechnix/.pyenv/versions/
2.7.14 3.6.4

Liste nun die installierten Python-Versionen auf.

$ pyenv versions
* system (set by /home/ostechnix/.pyenv/version)
 2.7.14
 3.6.4

Wechsel zwischen verschiedenen Python-Versionen

Wir können auf zwei Arten zu einer anderen Python-Version wechseln, global und lokal.

Lassen Sie uns die aktuelle globale Python-Version mit dem Befehl sehen:

$ pyenv global
system

Es gibt keine. Mein System verwendet weiterhin das standardmäßige Python des Systems. Lassen Sie uns auf eine andere Python-Version wechseln, zum Beispiel 2.7.14.

$ pyenv global 2.7.14

Überprüfen Sie nun die Standard-Python-Version:

$ pyenv versions
 system
* 2.7.14 (set by /home/ostechnix/.pyenv/version)
 3.6.4

Hast du den Stern (*) bemerkt? Ja, 2.7.14 ist unsere globale Standard-Python-Version.

Sie können auch mehrere Versionen gleichzeitig als globales Python angeben. Angenommen, Sie haben zwei Versionen, 2.7.14 und 3.6.4. Wenn Sie 2.7.14 gegenüber 3.6.4 bevorzugen, führen Sie einfach Folgendes aus:

$ pyenv global 2.7.14 3.6.4

Überprüfen Sie jetzt die globalen Versionen.

$ pyenv versions
 system
* 2.7.14 (set by /home/ostechnix/.pyenv/version)
* 3.6.4 (set by /home/ostechnix/.pyenv/version)

Jetzt sind 2.7.14 und 3.6.4 die standardmäßigen globalen Versionen.

Wir können eine lokale, anwendungsspezifische (pro Projekt) Python-Version festlegen, indem wir den Versionsnamen in eine .python-version-Datei im aktuellen Verzeichnis schreiben. Bitte beachten Sie, dass die lokale Version die globale Version überschreibt und selbst durch das Festlegen der PYENV_VERSION-Umgebungsvariable oder mit dem pyenv shell-Befehl überschrieben werden kann.

Wechseln Sie zu Ihrem Projektverzeichnis:

$ cd myproject/

Lass uns auf 3.6.4 wechseln.

$ pyenv local 3.6.4

Überprüfen Sie die aktuelle lokale Python-Version.

$ pyenv versions
 system
 2.7.14
* 3.6.4 (set by /home/ostechnix/myproject/.python-version)

Virtuelle Umgebung einrichten

Um eine virtuelle Umgebung mit einer bestimmten Python-Version einzurichten, tun Sie Folgendes:

$ pyenv virtualenv 3.6.4 myenv

Um es global verfügbar zu machen, führen Sie aus:

$ pyenv global myenv
(myenv) ostechnix@ostechnix:~$

Du bist jetzt in deiner virtuellen Umgebung. Mach, was du willst. Installiere oder entferne Python-Anwendungen mit pip und was sonst noch. Es gehört ganz dir.

Wenn Sie eine lokale virtuelle Umgebung (pro Verzeichnis) einrichten möchten:

Wechseln Sie in Ihr Projektverzeichnis und führen Sie aus:

$ pyenv local mylocalenv

Um eine virtuelle Umgebung zu entfernen, machen Sie einfach Folgendes:

$ pyenv uninstall myenv
pyenv-virtualenv: remove /home/ostechnix/.pyenv/versions/3.6.4/envs/myenv? y

Bestimmte Python-Version entfernen

Um eine bestimmte Python-Version zu deinstallieren, zum Beispiel 3.6.4:

$ pyenv uninstall 3.6.4

Alternativ können Sie einfach das Verzeichnis der Version entfernen, die Sie entfernen möchten.

Überprüfen Sie die derzeit installierten Python-Versionen:

$ pyenv versions

Für weitere Details lesen Sie den Hilfebereich, indem Sie den folgenden Befehl ausführen:

$ pyenv

Überprüfen Sie außerdem „pyenv help “, um Informationen zu einem bestimmten Befehl zu erhalten. Zum Beispiel können Sie die Informationen des Befehls „install“ wie unten angezeigt einsehen.

$ pyenv help install

Und das ist alles. Wie Sie sehen können, ist die Verwaltung mehrerer Python-Versionen ziemlich einfach! Wenn Sie ein Python-Programmierer sind, ist Pyenv ein unverzichtbares Werkzeug, das Sie in Ihrem Arsenal haben sollten.

Verwandte Lektüre:

  • SDKMAN - Ein CLI-Tool zur einfachen Verwaltung mehrerer Software-Development-Kits
  • Wie man mehrere Java-Versionen mit jEnv unter Linux verwaltet

Ressourcen:

  • Pyenv GitHub-Repository
  • Pyenv-Installer-Skript-Repository