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

Jinku Hu 10 octubre 2023
  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
Cómo comprobar la versión Python en los scripts

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 alpha, beta, candidate o release.
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.

from __future__ import print_function

import six

if six.PY2:
    print("Python 2.x")
if six.PY3:
    print ("Python 3.x")
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - Python Version