Comment vérifier la version Python dans les scripts

  1. Méthode sys.version pour vérifier la version Python
  2. Méthode sys.version_info pour vérifier la version Python
  3. Méthode platform.python_version() pour vérifier la version Python
  4. Méthode du module six pour vérifier la version de Python

Dans différentes circonstances, nous devons connaître la version Python, ou plus précisément, la version de l’interpréteur Python qui exécute le fichier de script Python.

Méthode sys.version pour vérifier la version Python

Cette information de version peut être récupérée à partir de sys.version dans le module sys.

En Python 2.x

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

ou en 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)]'

Méthode sys.version_info pour vérifier la version Python

sys.version renvoie une chaîne contenant les informations de version lisibles par l’homme de l’interpréteur Python actuel. Mais les informations comme le major release number et le micro release number ont besoin d’un traitement supplémentaire pour être dérivées pour une utilisation ultérieure dans les codes.

sys.version_info résout ce problème facilement en retournant l’information de version sous la forme d’un n-uplet nommé. Les données de version qu’il retourne sont,

Données Description
major Numéro de la version majeure
micro Numéro de libération du patch
minor Numéro de libération mineure
releaselevel alpha, beta, candidate ou release
serial Numéro de série
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)

Vous pouvez comparer la version actuelle avec la version de référence en utilisant simplement les opérateurs >, >=, ==, <= ou <.

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

Nous pourrions ajouter un assert dans les scripts pour s’assurer que le script fonctionne avec l’exigence d’une version minimale de Python.

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

Cela provoquera une AssertionError si l’interpréteur ne répond pas aux exigences de la version.

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

Méthode platform.python_version() pour vérifier la version Python

python_version() dans le module platform renvoie la version Python sous la forme de la chaîne major.minor.patchlevel.

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

Ou similaire à sys.version_info, platform a aussi une méthode pour retourner la version Python comme tuple (major, minor, patchlevel) de chaînes - python_version_tuple().

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

Méthode du module six pour vérifier la version de Python

Si vous avez seulement besoin de vérifier si la version Python est Python 2.x ou Python 3.x, vous pouvez utiliser six module pour faire le travail.

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