pyenv installieren & nutzen: Python-Versionen und virtuelle Umgebungen einfach verwalten

1. Was ist pyenv?

Für Python-Entwickler ist es oft notwendig, in verschiedenen Projekten unterschiedliche Python-Versionen zu verwenden. Hier kommt pyenv ins Spiel. pyenv ist ein Tool, mit dem Sie mehrere Python-Versionen verwalten und projektweise unkompliziert zwischen ihnen wechseln können.

Herausforderungen beim Python-Versionsmanagement

Im Laufe der Python-Entwicklung kann es erforderlich sein, verschiedene Versionen für unterschiedliche Projekte zu nutzen. Beispielsweise benötigt ein Projekt Python 3.9, während ein anderes auf Python 2.7 angewiesen ist. Normalerweise ist auf einem System nur eine Python-Version installiert, sodass das Umschalten mühsam sein kann. Genau dieses Problem löst pyenv.

Vorteile von pyenv

Mit pyenv profitieren Sie von folgenden Vorteilen:

  1. Einfache Versionsumschaltung: Mit pyenv können Sie sowohl systemweit als auch projektweise schnell zwischen Python-Versionen wechseln.
  2. Verwaltung mehrerer Versionen: Installierte Python-Versionen lassen sich zentral über ein einziges Tool steuern. So können Sie Abhängigkeiten und Versionsunterschiede pro Projekt flexibel handhaben.
  3. Breite OS-Unterstützung (außer Windows): Funktioniert auf macOS, Linux und vielen anderen Betriebssystemen.

Wie funktioniert pyenv?

pyenv erstellt für jede Python-Version ein eigenes Verzeichnis, in das die jeweilige Version installiert wird. Nutzer können mit den Befehlen pyenv global und pyenv local bestimmen, ob eine Version systemweit oder nur in einem bestimmten Projekt verwendet werden soll.

2. Installation von pyenv

Überblick

Um pyenv zu nutzen, muss es zunächst installiert werden. In diesem Abschnitt wird die Installation unter macOS und Linux erklärt. Unter Windows wird pyenv nicht nativ unterstützt – hier empfiehlt sich die Nutzung von WSL (Windows Subsystem for Linux) oder Alternativen wie Anaconda.

Installation unter macOS

Unter macOS können Sie pyenv bequem mit Homebrew installieren. Homebrew ist ein Paketmanager für macOS, mit dem sich Software einfach installieren lässt. Befolgen Sie diese Schritte:

  1. Überprüfung, ob Homebrew installiert ist
    Öffnen Sie das Terminal und führen Sie folgenden Befehl aus:
   brew --version

Wenn eine Versionsnummer erscheint, ist Homebrew bereits installiert. Andernfalls folgen Sie den Anleitungen auf der offiziellen Homebrew-Seite.

  1. pyenv installieren
    Wenn Homebrew verfügbar ist, installieren Sie pyenv mit:
   brew install pyenv

Nach erfolgreicher Installation fahren Sie mit dem nächsten Schritt fort.

  1. Umgebungsvariablen konfigurieren
    Damit pyenv funktioniert, müssen Umgebungsvariablen gesetzt werden. Normalerweise geschieht das in .bash_profile oder .zshrc. Fügen Sie folgende Zeilen hinzu:
   echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
   echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
   echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile

Wenn Sie .zshrc verwenden, ergänzen Sie die Zeilen dort. Anschließend das Terminal neu starten oder ausführen:

   source ~/.bash_profile
  1. Installation überprüfen
    Führen Sie folgenden Befehl aus, um sicherzustellen, dass pyenv korrekt installiert wurde:
   pyenv --version

Wenn eine Versionsnummer angezeigt wird, ist die Installation erfolgreich.

Installation unter Linux

Auch unter Linux kann pyenv ähnlich wie auf macOS installiert werden, jedoch werden hier Paketmanager wie apt oder yum genutzt. Im Folgenden ein Beispiel für Ubuntu:

  1. Benötigte Pakete installieren
    Vor der Installation von pyenv müssen Abhängigkeiten installiert werden:
   sudo apt update
   sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev 
   libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev 
   xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
  1. pyenv installieren
    Klonen Sie das Repository mit Git und installieren Sie pyenv:
   curl https://pyenv.run | bash
  1. Umgebungsvariablen konfigurieren
    Fügen Sie folgende Zeilen in Ihre .bashrc oder .zshrc ein:
   export PATH="$HOME/.pyenv/bin:$PATH"
   eval "$(pyenv init --path)"

Um die Änderungen zu übernehmen, starten Sie das Terminal neu oder führen Sie source ~/.bashrc aus.

  1. Installation überprüfen
    Mit folgendem Befehl überprüfen Sie die erfolgreiche Installation:
   pyenv --version

Troubleshooting

Sollten während der Installation Fehler auftreten, fehlen häufig Abhängigkeiten. Besonders unter Linux können je nach Distribution unterschiedliche Bibliotheken erforderlich sein. Prüfen Sie die offizielle Dokumentation und installieren Sie die fehlenden Pakete.

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. Verwaltung von Python-Versionen

Nachdem pyenv installiert ist, können Sie Python-Versionen verwalten, installieren und wechseln.

Installation von Python-Versionen

Mit pyenv können Sie verschiedene Python-Versionen problemlos installieren. Zum Beispiel:

  1. Verfügbare Versionen anzeigen
    Mit folgendem Befehl sehen Sie alle unterstützten Python-Versionen:
   pyenv install --list
  1. Installation einer bestimmten Version
    Beispielsweise Python 3.9.1:
   pyenv install 3.9.1

Python-Versionen wechseln

pyenv macht es leicht, zwischen installierten Versionen zu wechseln:

  1. Systemweite Version ändern:
   pyenv global 3.9.1
  1. Projektbezogene Version ändern:
   pyenv local 3.8.0
  1. Aktuelle Version anzeigen:
   pyenv version

Python-Version deinstallieren

Falls eine Version nicht mehr benötigt wird:

   pyenv uninstall 3.9.1

4. Verwendung von pyenv zusammen mit virtualenv

pyenv erleichtert das Verwalten von Python-Versionen erheblich. Für ein noch effizienteres Abhängigkeitsmanagement empfiehlt sich jedoch die Kombination mit virtualenv, einem Tool zum Erstellen isolierter virtueller Umgebungen.

Was ist virtualenv?

virtualenv erstellt für jedes Projekt eine unabhängige Umgebung, in der Bibliotheken und Pakete isoliert sind. So können mehrere Projekte auf demselben System unterschiedliche Paketversionen nutzen, ohne Konflikte zu verursachen.

Beispiel: Projekt A nutzt requests Version 2.0, während Projekt B Version 3.0 benötigt. Mit virtualenv lassen sich beide Szenarien parallel betreiben.

Unterschied zwischen pyenv und virtualenv

pyenv dient hauptsächlich zur Verwaltung verschiedener Python-Versionen, während virtualenv die Bibliotheken und Abhängigkeiten in isolierten Umgebungen trennt.

Die Kombination beider Tools bringt folgende Vorteile:

  • Mehrere Python-Versionen verwalten: Mit pyenv können Sie unterschiedliche Python-Versionen installieren und pro Projekt konfigurieren.
  • Abhängigkeiten projektweise trennen: Mit virtualenv verhindern Sie Versionskonflikte zwischen Projekten.

Installation von pyenv-virtualenv

Zusätzlich gibt es das Plugin pyenv-virtualenv, das die Verwaltung von virtuellen Umgebungen noch einfacher macht.

  1. Installation
    Unter macOS installieren Sie es über Homebrew:
   brew install pyenv-virtualenv

Unter Linux installieren Sie es mit:

   git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
  1. Umgebungsvariablen konfigurieren
    Fügen Sie folgende Zeilen zu Ihrer Shell-Konfiguration hinzu:
   echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
   source ~/.bash_profile

Virtuelle Umgebung erstellen

Mit pyenv-virtualenv können Sie Umgebungen pro Python-Version anlegen. Beispiel für Python 3.8.0:

pyenv virtualenv 3.8.0 my_project_env

Damit wird eine virtuelle Umgebung my_project_env auf Basis von Python 3.8.0 erstellt.

Virtuelle Umgebung aktivieren

Um die erstellte Umgebung in einem Projekt zu nutzen, führen Sie aus:

pyenv local my_project_env

Damit ist die Umgebung im aktuellen Projektordner aktiv.

Virtuelle Umgebung löschen

Wenn eine Umgebung nicht mehr benötigt wird:

pyenv uninstall my_project_env

Vorteile von virtualenv

Die Kombination von pyenv und virtualenv ermöglicht eine vollständige Trennung von Python-Versionen und Projekt-Abhängigkeiten. Das reduziert das Risiko von Konflikten und sorgt für eine stabile Entwicklungsumgebung.

5. Wichtige Hinweise bei der Nutzung von pyenv

Die Verwendung von pyenv und virtualenv macht das Management von Python-Versionen und -Umgebungen sehr effizient. Dennoch gibt es einige Stolperfallen und typische Probleme, die man kennen sollte.

1. Eingeschränkte Unterstützung unter Windows

pyenv ist primär für macOS und Linux vorgesehen. Unter Windows gibt es keine direkte Unterstützung. Folgende Alternativen sind möglich:

  • Windows Subsystem for Linux (WSL): Installieren Sie WSL, um eine Linux-Umgebung unter Windows zu nutzen und dort pyenv einzusetzen.
  • Anaconda: Als Alternative können Sie mit Anaconda mehrere Python-Versionen und virtuelle Umgebungen auch unter Windows verwalten.

2. Fehlende Abhängigkeiten

Unter Linux kann es vorkommen, dass Abhängigkeiten fehlen und Fehler beim Kompilieren auftreten.

WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?

Lösung:

  • Installieren Sie die fehlenden Pakete (z. B. libbz2-dev, libssl-dev) und führen Sie den Installationsbefehl erneut aus:
   sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev

3. Konflikte mit bestehender Python-Installation

Wenn bereits Python auf dem System installiert ist, kann es zu Konflikten mit pyenv kommen – meist durch falsche PATH-Konfigurationen.
Lösung:

  • Stellen Sie sicher, dass in Ihrer .bashrc oder .zshrc die folgenden Zeilen korrekt gesetzt sind:
   export PATH="$HOME/.pyenv/bin:$PATH"
   eval "$(pyenv init --path)"

4. Probleme bei der Installation bestimmter Versionen

Einige Python-Versionen lassen sich nicht installieren, wenn Build-Tools oder Bibliotheken fehlen.
Lösung:

  • Installieren Sie die benötigten Pakete wie build-essential und libssl-dev und wiederholen Sie den Befehl pyenv install.

5. Tippfehler bei Versionsangaben

Ein häufiger Fehler ist die Eingabe einer nicht existierenden Version.
Lösung:

  • Überprüfen Sie mit pyenv install --list die verfügbaren Versionen, bevor Sie eine Installation starten.

6. Konflikte zwischen virtuellen Umgebungen

Wenn mehrere virtuelle Umgebungen dieselbe Python-Version verwenden, kann es zu Abhängigkeitskonflikten kommen.
Lösung:

  • Erstellen Sie für jedes Projekt eine eigene virtuelle Umgebung, um Pakete strikt zu trennen.

6. Zusammenfassung und nächste Schritte

pyenv ist ein äußerst nützliches und leistungsstarkes Tool für das Management von Python-Versionen. Besonders für Entwickler, die mit mehreren Projekten arbeiten und unterschiedliche Python-Versionen benötigen, erleichtert pyenv den Versionswechsel erheblich. In Kombination mit virtualenv können zusätzlich die Projektabhängigkeiten sauber getrennt werden.

Vorteile von pyenv im Überblick

  1. Einfache Versionsverwaltung: Mit pyenv lassen sich mehrere Python-Versionen systemweit oder pro Projekt unkompliziert wechseln.
  2. Kombination mit virtuellen Umgebungen: Durch pyenv-virtualenv oder virtualenv können Abhängigkeiten pro Projekt isoliert und effizient verwaltet werden.
  3. Fehlerbehebung: Typische Probleme wie fehlende Bibliotheken oder Versionskonflikte lassen sich mit den richtigen Einstellungen und Paketen schnell lösen.

Nächste Schritte

  1. Effizienz weiter steigern: Nachdem Sie die Grundlagen von pyenv beherrschen, können Sie Tools wie pipenv oder poetry in Betracht ziehen. Diese vereinfachen das Abhängigkeitsmanagement und automatisieren das Setup von Projekten.
  2. Alternative Umgebungen prüfen: Windows-Nutzer können WSL einsetzen oder Alternativen wie Anaconda nutzen, da pyenv hier nicht nativ unterstützt wird.
  3. Praktische Anwendung: Testen Sie pyenv direkt in Ihren Projekten. Erstellen Sie virtuelle Umgebungen und erleben Sie, wie reibungslos die Verwaltung von Python-Versionen und Bibliotheken funktioniert.
オープンソースの力を活用する方法~Ubuntuの世界へようこそ~

目次 1 1. はじめに1.1 Pythonバージョン管理の重要性1.2 Ubuntuとpyenvの組み合わせの利点2 …

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール