Como verificar a versão Python nos scripts

Jinku Hu 10 outubro 2023
  1. Método sys.version para verificar a versão em Python
  2. Método sys.version_info para verificar a versão em Python
  3. platform.python_version() método para verificar a versão do Python
  4. six Método de módulo para verificar a versão Python
Como verificar a versão Python nos scripts

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")
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

Artigo relacionado - Python Version