Como verificar a versão Python nos scripts
-
Método
sys.versionpara verificar a versão em Python -
Método
sys.version_infopara verificar a versão em Python -
platform.python_version()método para verificar a versão do Python -
sixMétodo de módulo para verificar a versão Python
Em diferentes circunstâncias, precisamos conhecer a versão Python, ou mais precisamente, a versão Python interpreter que está executando o arquivo de scripts Python.
Método sys.version para verificar a versão em Python
Esta informação da versão pode ser recuperada a partir da sys.version no módulo sys.
Em Python 2.x
>>> import sys
>>> sys.version
'2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]'
ou em 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 verificar a versão em Python
O sys.version retorna uma string contendo a informação da versão legível por humanos do atual intérprete Python. Mas as informações como major release number e micro release number precisam de processamento extra para serem derivadas para posterior utilização nos códigos.
O sys.version_info resolve este problema facilmente retornando a informação da versão como um tuple nomeado. Os dados da versão que ele retorna são,
| Dados | Descrição |
|---|---|
major |
Número de lançamento principal |
micro |
Número de liberação do patch |
minor |
Número de liberação menor |
releaselevel |
alpha, beta, candidate ou release |
serial |
Número de lançamento em série |
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)
Você poderia comparar a versão atual com a versão de referência simplesmente utilizando operadores >, >=, ==, <= ou <.
>>> import sys
>>> sys.version_info >= (2, 7)
True
>>> sys.version_info >= (2, 7, 11)
False
Poderíamos adicionar um assert nos scripts para ter certeza que o script roda com o requerimento de uma versão mínima do Python.
import sys
assert sys.version_info >= (3, 7)
Ele irá levantar um AssertionError se o interpretador não atender ao requisito da versão.
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 verificar a versão do Python
python_version() in platform module retorna a versão Python como string major.minor.patchlevel.
>>> from platform import python_version
>>> python_version()
'3.7.0'
Ou similar a sys.version_info, platform também tem um método para retornar a versão Python como tuple (major, minor, patchlevel) de strings - python_version_tuple()
>>> import platform
>>> platform.python_version_tuple()
('3', '7', '0')
six Método de módulo para verificar a versão Python
Se você só precisa verificar se a versão Python é Python 2.x ou Python 3.x, você pode usar six módulo para fazer o trabalho.
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