Lesezeit 2 Minuten

Die Python-Versionshölle

Die Python-Versionshölle
Photo by Wietse Jongsma / Unsplash

Als jemand, der wenig vertraut mit Python war, erschien mir schon Python als Programmiersprache selbst eine Versionshölle zu sein. Da ich jemand bin, die viel in Common-Lisp entwickelt, erschien es mir abwegig, dass die Programmiersprache oft aktualisiert werden muss. Ein Common-Lisp muss eigentlich nie aktualisiert werden und wenn, dann meist, weil der Hersteller auf Grund einer Betriebssystemänderung Anpassungen vornehmen muss. Im Python-Umfeld gibt es viele Open Source Projekte, die jeweils auf gewisse Python-Version beschränkt sind. Als Neuling, dachte ich schon, ich sei aufgeschmissen, weil z.B. auf meinem System ein Python 3.13 installiert ist und eine Komponente jetzt zwingend Python 3.10 erfordert. Das ist natürlich für viele ein Problem und deshalb sind auch gleich mehrere Lösungen im Umlauf, die das Problem m.E. sehr praktikabel lösen.

Ich habe jetzt für mich folgende Lösungen gefunden:

Pyenv: Parallele Installation mehrere Python-Interpreter

Pyenv macht es möglich, dass verschiedene Python-Version auf der Maschine parallel betrieben werden können. Pyenv selbst kann direkt aus dem Web, mit einer kurzen Anweisung installiert werden:

$ curl -fsSL https://pyenv.run | bash

Dieser Installer legt nur ein Verzeichnis .pyenv im Home-Verzeichnis an und zeigt auch gleich einen Hinweis, über Einträge an, die in die .bashrc eingetragen werden müssen, damit das System funktioniert:

WARNING: seems you still have not added 'pyenv' to the load path.

# Load pyenv automatically by appending
# the following to 
# ~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
# and ~/.bashrc (for interactive shells) :

export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"

# Restart your shell for the changes to take effect.

# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:

eval "$(pyenv virtualenv-init -)"

Da Pyenv nur aus dem Verzeichnis ~/.pyenv und den Zeilen in der .bashrc besteht, kann es auch immer leicht wieder entfernt werden. Dazu entfernt man die kommentierten Zeilen aus seiner Profildatei (also hier .bashrc) und löscht das Verzeichnis ~/.pyenv.

Managing Multiple Python Versions With pyenv – Real Python
Learn how to use pyenv to manage multiple Python versions, prevent conflicts, and keep your projects compatible and development smooth.