Cómo comprobar la versión Python en los scripts
-
Método
sys.version
para comprobar la versión de Python -
Método
sys.version_info
para comprobar la versión en Python -
platform.python_version()
método para comprobar la versión de Python -
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 |
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")
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