Cómo comprobar la versión Python en los scripts

  1. Método sys.version para comprobar la versión de Python
  2. Método sys.version_info para comprobar la versión en Python
  3. platform.python_version() método para comprobar la versión de Python
  4. Método del módulo six para comprobar la versión de Python

En diferentes circunstancias, necesitamos saber la versión de Python, o más precisamente, la versión del intérprete de Python que está ejecutando el archivo de script de Python.

Método sys.version para comprobar la versión de Python

Esta información de versión puede ser recuperada de sys.version en el módulo 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)]'

o 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étodo sys.version_info para comprobar la versión en Python

sys.version devuelve una cadena que contiene la información de la versión legible por los humanos del intérprete de Python actual. Pero la información como major release number y micro release number necesita un procesamiento extra para ser derivada para su uso posterior en los códigos.

sys.version_info’ resuelve este problema fácilmente devolviendo la información de versión como una tupla con nombre. Los datos de versión que devuelve son

Datos Descripción
major Número de lanzamiento principal
micro Número de patch release
minor Número de lanzamiento menor
releaselevel alfa, beta, candidato o liberación.
serial Número de serie del lanzamiento
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)

Puede comparar la versión actual con la versión de referencia simplemente usando los operadores >, >=, ==, <= o <.

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

Podríamos añadir un assert en los scripts para asegurarnos de que el script se ejecuta con el requisito de una versión mínima de Python.

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

Esto provocará un AssertionError si el intérprete no cumple con el requisito de la versión.

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

platform.python_version() método para comprobar la versión de Python

El módulo python_version() en platform devuelve la versión de Python como la cadena major.minor.patchlevel.

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

O de forma similar a sys.version_info, platform también tiene un método para devolver la versión Python como tupla (major, minor, patchlevel) de cadenas - python_version_tuple()

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

Método del módulo six para comprobar la versión de Python

Si sólo necesita comprobar si la versión de Python es Python 2.x o Python 3.x, puede utilizar el módulo six module para hacer el trabajo.

import six
if six.PY2:
    print "Python 2.x"
if six.PY3:
    print("Python 3.x")