Website-Suche

Pyenv – Installieren Sie mehrere Python-Versionen für ein bestimmtes Projekt


Die Verwaltung mehrerer Versionen von Python auf einem Linux-System ist keine leichte Aufgabe, insbesondere für Anfänger. Manchmal wird es sogar noch schlimmer, wenn Sie mehrere Projekte mit unterschiedlichen Python-Versionen auf demselben Server entwickeln und ausführen möchten. Dies sollte jedoch nicht der Fall sein, wenn Sie pyenv verwenden.

Lesen Sie auch: So installieren Sie die neueste Python 3.6-Version unter Linux

Was ist Pyenv?

Pyenv ist ein einfaches, leistungsstarkes und plattformübergreifendes Tool zur Verwaltung mehrerer Python-Versionen auf Linux-Systemen, das für verwendet wird.

  • Wechseln der globalen Python-Version pro Benutzer.
  • Festlegen der lokalen Python-Version auf Projektbasis.
  • Verwaltung virtueller Umgebungen, die von Anaconda oder Virtualenv erstellt wurden.
  • Überschreiben der Python-Version mit einer Umgebungsvariablen.
  • Durchsuchen von Befehlen aus mehreren Python-Versionen und mehr.

Wie funktioniert pyenv?

Normalerweise wird eine einzige Standardversion von Python verwendet, um alle Ihre Anwendungen auszuführen, es sei denn, Sie geben explizit die Version an, die Sie in der Anwendung verwenden möchten. Aber pyenv implementiert ein einfaches Konzept der Verwendung von Shims (leichtgewichtige ausführbare Dateien), um Ihren Befehl an die richtige Python-Version zu übergeben, die Sie verwenden möchten, wenn Sie mehrere Versionen installiert haben.

Diese Shims werden von pyenv in ein Verzeichnis vor Ihrem PATH eingefügt. Wenn Sie also einen Python-Befehl ausführen, wird dieser vom entsprechenden shim abgefangen und an pyenv weitergeleitet, das dann die von Ihrer Anwendung angegebene Python-Version erstellt und weiterleitet Geben Sie Ihre Befehle an die richtige Python-Installation weiter. Dies ist ein Überblick über die Funktionsweise von pyenv.

In diesem Artikel zeigen wir, wie man die neueste Version von pyenv unter Linux installiert. Wir werden auch die ersten drei oben aufgeführten Anwendungsfälle demonstrieren.

So installieren Sie Pyenv unter Linux

1. Installieren Sie zunächst alle erforderlichen Pakete für die Installation verschiedener Python-Versionen aus Quellen mit dem folgenden Befehl auf Ihrer jeweiligen Linux-Distribution.

------------ On Debian/Ubuntu/Linux Mint ------------ 
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. Als nächstes holen Sie sich den neuesten pyenv-Quellbaum aus dem Github-Repository und installieren ihn im Pfad $HOME/.pyenv mit dem folgenden Befehl.

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. Jetzt müssen Sie die Umgebungsvariable PYENV_ROOT so einstellen, dass sie auf den Pfad verweist, in dem Sie pyenv installiert haben, und es exportieren. Fügen Sie dann $PYENV_ROOT/bin zu Ihrem PATH hinzu, um das Befehlszeilendienstprogramm pyenv wie alle anderen Systembefehle auszuführen.

Sie müssen außerdem Shims sowie Autovervollständigung aktivieren, indem Sie pyenv init zu Ihrer Shell hinzufügen. Führen Sie all diese Dinge in Ihrer Bash-Startdatei $HOME/.bashrc durch, wie gezeigt.

vim $HOME/.bashrc 

Kopieren Sie die folgenden Zeilen und fügen Sie sie am Ende dieser Datei ein.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. Sobald Sie die oben genannten Änderungen vorgenommen haben, können Sie entweder die Datei $HOME/.bashrc als Quelle verwenden oder die Shell wie gezeigt neu starten.

source $HOME/.bashrc
OR
exec "$SHELL"

So installieren Sie mehrere Python-Versionen unter Linux

5. An diesem Punkt sollten Sie bereit sein, mit der Verwendung von pyenv zu beginnen. Bevor Sie eine Python-Version installieren, können Sie mit diesem Befehl alle verfügbaren Versionen anzeigen.


pyenv install -l

6. Sie können jetzt beispielsweise über pyenv mehrere Python-Versionen installieren.

pyenv install 3.6.4
pyenv install 3.6.5

7. Um alle für pyenv verfügbaren Python-Versionen aufzulisten, führen Sie den folgenden Befehl aus. Dadurch werden nur Versionen angezeigt, die über pyenv selbst installiert wurden.

pyenv versions

8. Sie können die globale Python-Version mit dem folgenden Befehl überprüfen. Zu diesem Zeitpunkt sollte die Standardversion die vom System festgelegte sein, nicht pyenv.

pyenv global

Sie können die globale Python-Version mit dem Befehl pyenv festlegen.

pyenv global 3.6.5
pyenv global

9. Sie können jetzt die lokale Python-Version pro Projekt festlegen. Wenn Sie beispielsweise ein Projekt in $HOME/python_projects/test haben, können Sie dies festlegen die Python-Version davon mit dem folgenden Befehl.

cd python_projects/test
pyenv local 3.6.5
pyenv version		#view local python version for a specific project 
OR
pyenv versions

10. Pyenv verwaltet virtuelle Umgebungen über das pyenv-virtualenv-Plugin, das die Verwaltung von virtualenvs- und conda-Umgebungen für Python automatisiert auf Linux und anderen UNIX-ähnlichen Systemen.

Sie können mit der Installation dieses Plugins beginnen, indem Sie die folgenden Befehle verwenden.

git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc

11. Jetzt erstellen wir wie folgt eine virtuelle Testumgebung namens venv_project1 unter einem Projekt namens project1.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Wenn Sie nun alle Python-Versionen auflisten, sollten auch Ihre virtuellen Umgebungen sowie deren lokale Python-Versionen aufgelistet sein, wie im Screenshot gezeigt.

pyenv versions

13. Um eine virtuelle Umgebung zu aktivieren, zum Beispiel venv_project1, geben Sie den folgenden Befehl ein.

pyenv activate venv_project1

Hinweis: Möglicherweise erhalten Sie die folgende Meldung, wenn Sie die neueste Version des pyenv-virtualenv-Plugins zum ersten Mal verwenden.

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

Fügen Sie die Zeile export PYENV_VIRTUALENV_DISABLE_PROMPT=1 in Ihre $HOME/.bashrc-Datei ein, in der Sie andere pyenv-Konfigurationen hinzugefügt haben, und geben Sie die zu simulierende Datei als Quelle an das Verhalten wird betont.

14. Um die aktivierte virtuelle Umgebung zu deaktivieren, führen Sie diesen Befehl aus.

pyenv deactivate

Für weitere Informationen können Sie alle pyenv-Befehle mit dem folgenden Befehl auflisten.

pyenv commands

Weitere Informationen finden Sie im pyenv Github-Repository: https://github.com/pyenv/pyenv

Lesen Sie auch: So installieren Sie mehrere PHP-Versionen für mehrere Websites

Die Verwendung von pyenv ist wirklich so einfach. In diesem Handbuch haben wir die Installation gezeigt und einige seiner Anwendungsfälle für die Verwaltung mehrerer Python-Versionen auf einem Linux-System demonstriert. Verwenden Sie das Feedback-Formular unten, um Fragen zu stellen oder Ihre Gedanken zu diesem Tool mitzuteilen.