Wie man die Python-Version in den Skripten überprüft

  1. sys.version Methode zur Überprüfung der Python-Version
  2. sys.version_info Methode zur Überprüfung der Python-Version
  3. platform.python_version() Methode zur Überprüfung der Python-Version
  4. six Modul Methode zur Überprüfung der Python Version

Unter verschiedenen Umständen müssen wir die Python-Version kennen, genauer gesagt die Version des Python-Interpreters, der die Python-Skriptdatei ausführt.

sys.version Methode zur Überprüfung der Python-Version

Diese Versionsinformationen können aus der sys.version im sys Modul abgerufen werden.

In Python 2.x

>>> import sys
>>> sys.version
'2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]'

oder in Python 3.x

>>> import sys
>>> sys.version
'3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]'

sys.version_info Methode zur Überprüfung der Python-Version

sys.version gibt einen String zurück, der die menschenlesbare Versionsinformation des aktuellen Python-Interpreters enthält. Aber die Informationen wie major release number und micro release number müssen für die weitere Verwendung in den Codes extra verarbeitet werden.

sys.version_info löst dieses Problem auf einfache Weise, indem die Versionsinformationen als benanntes Tupel zurückgegeben werden. Die Versionsdaten, die es zurückgibt, sind,

Daten Beschreibung
major Hauptversionsnummer
micro Patch-Freigabenummer
minor Kleinere Versionsnummer
releaselevel alpha, beta, candidate oder release
serial Seriennummer der Freigabe
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)

Sie könnten die aktuelle Version mit der Referenzversion vergleichen, indem Sie einfach die Operatoren >, >=, ==, <= oder < verwenden.

>>> import sys
>>> sys.version_info >= (2, 7)
True
>>> sys.version_info >= (2, 7, 11)
False

Wir könnten ein assert in die Skripte einfügen, um sicherzustellen, dass das Skript mit der Anforderung einer minimalen Python-Version läuft.

import sys
assert sys.version_info >= (3, 7)

Es wird einen AssertionError auslösen, wenn der Interpreter die Versionsanforderung nicht erfüllt.

Traceback (most recent call last):
  File "C:\test\test.py", line 4, in <module>
    assert sys.version_info >= (3, 7)
AssertionError

platform.python_version() Methode zur Überprüfung der Python-Version

Das Modul python_version() in platform gibt die Python-Version als String major.minor.patchlevel zurück.

>>> from platform import python_version
>>> python_version()
'3.7.0'

Oder ähnlich wie sys.version_info hat auch platform eine Methode, die die Python-Version als Tupel (major, minor, patchlevel) von Strings zurückgibt - python_version_tuple()

>>> import platform
>>> platform.python_version_tuple()
('3', '7', '0')

six Modul Methode zur Überprüfung der Python Version

Wenn Sie nur überprüfen wollen, ob die Python-Version Python 2.x oder Python 3.x ist, können Sie das mit dem six Modul erledigen.

import six
if six.PY2:
    print "Python 2.x"
if six.PY3:
    print("Python 3.x")
comments powered by Disqus