Python/Modul-Versionen

Python wird ständig weiterentwickelt und es werden immer wieder neue Versionen veröffentlicht. Gerade wenn man zum Beispiel miniconda verwendet und viel verschiedene Umgebungen benutzt, verliert man schnell den Überblick.

Python-Versionen

In der Python-Version 3.10, wurde zum Beispiel das match/case-Statement eingeführt, welches in den früheren Versionen nicht vorhanden war. Eine Überprüfung der Python Version ist also manchmal notwendig, um Fehlermeldungen auf den Grund zu gehen.

# Python 3.10 - match/case-Statement
def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case 401 | 403 | 404:
            return 'Not allowed'
        case _:
            return "Something else"

Pythonversion in Terminals

Wollen wir die Python-Version in Terminals anzeigen lassen, können wir dies mit python --version oder python -V erreichen.

Die Eingabe:

python --version

Die Ausgabe:

3.9.7

Pythonversion in Konsolen / Jupyter Lab Konsolen

Wir können in Terminals als auch im Jupyter Lab sogenannte Python Konsolen starten. Diese ermöglichen eine interaktive Python Sitzung. Beim Starten werden Informationen zur Python Umgebung angezeigt.

../_images/python_jupyterlab_console.png

Abb. 1 Jupyter Lab Console

Python-Version in einem Programm (Programm/Jupyter-Notebook)

In einem Python-Programm oder in einem Jupyter-Notebook können wir wie die verwendete Python-Version mit sys oder platform auslesen.

Starten wir mit sys:

import sys
sys.version
'3.9.7 | packaged by conda-forge | (default, Sep 23 2021, 07:28:37) \n[GCC 9.4.0]'

Wir erhalten viele nützliche Informationen. Als erstes natürlich die Python-Version, den Installationskanal und das Installationsdatum.

Mit version_info können wir noch ein paar weitere Details auslesen.

sys.version_info
sys.version_info(major=3, minor=9, micro=7, releaselevel='final', serial=0)

Jetzt verwenden wir platform:

import platform
platform.python_version()
'3.9.7'
platform.python_version_tuple()
('3', '9', '7')

Wir können auch das Betriebsystem auslesen.

platform.system()
'Linux'

Python-Modul-Version

Viele Python Module besitzen das Attribut __version__, welches uns die Version des Moduls anzeigt.

import numpy
numpy.__version__
'1.21.2'

Nicht alle Python Module haben dieses Attribut.

Alternativ können wir die Module importlib_metadata oder pkg_resources benutzen.

from importlib_metadata import version
print(version('numpy'))
1.21.2
import pkg_resources
print(pkg_resources.get_distribution('numpy').version)
1.21.2