Verificar e exibir a versão Python (por exemplo, sys.version)

O negócio

Esta secção mostra como obter, verificar e exibir a versão instalada do Python e a versão do Python que está realmente a correr no guião.

Esta secção explica como verificar a linha de comando e o código, respectivamente.

  • Verificar e exibir a versão na linha de comando:--version,-V,-VV
  • Obtenha a versão no código:sys,platform
    • Uma sequência de várias informações, incluindo um número de versão:sys.version
    • Um tuple numérico de números de versão:sys.version_info
    • Cadeia de números de versão:platform.python_version()
    • Um tuple de cordas de números de versão:platform.python_version_tuple()

Se obtiver o número da versão no código, pode mostrá-lo com print() para o verificar, e também mudar o processo dependendo da versão.

Verificar e exibir a versão na linha de comando: –versão, -V, -VV

Pode utilizar um prompt de comando para Windows, ou um terminal para Mac.pythoncomando ou opython3comando.--versionOpcional ou-Vopção para a executar.

$ python --version
Python 2.7.15

$ python -V
Python 2.7.15

$ python3 --version
Python 3.7.0

$ python3 -V
Python 3.7.0

Como pode ver no exemplo acima, dependendo do seu ambiente, o sistema Python 2.x pode serpythona série Python 3.x serápython3É atribuído a um comando.

De Python 3.6-VVfoi adicionada a opção.-VPode ver informações mais detalhadas do que

$ python3 -VV
Python 3.7.0 (default, Jun 29 2018, 20:13:13) 
[Clang 9.1.0 (clang-902.0.39.2)]

Obter versão em código: sys, plataforma

Também pode utilizar o módulo de sistema ou o módulo de plataforma da biblioteca padrão para obter, verificar e exibir a versão do Python que está realmente em execução.

Executar o guião Python para verificar. O guião é o mesmo para Windows, Mac, Ubuntu, e outros sistemas Linux.

Isto é útil para verificar que versão do Python está a ser usada num ambiente onde várias versões do Python estão instaladas, pois é possível executar o Python 2 quando se pensava que se estava a executar o Python 3.

Também pode ser utilizado para ramificação condicional quando se pretende alternar entre o processamento Python 2 e Python 3.

Várias cadeias de informação, incluindo o número da versão: sys.version

sys.versioné uma cadeia que indica várias informações, incluindo o número da versão.

sys.version
Uma string indicando o número de versão do intérprete Python, bem como informações como o número de construção e compilador utilizado.
sys — System-specific parameters and functions – Python 3.10.0 Documentation

import sys

print(sys.version)
# 3.7.0 (default, Jun 29 2018, 20:13:13) 
# [Clang 9.1.0 (clang-902.0.39.2)]

print(type(sys.version))
# <class 'str'>

Tuple numérico do número da versão: sys.version_info

sys.version_infoé um tuple que indica o número da versão.

sys.version_info
Um tuple de cinco valores indicando o número da versão: maior, menor, micro, nível de lançamento, e série. Todos os valores excepto o nível de liberação são números inteiros.sys — System-specific parameters and functions – Python 3.10.0 Documentation

print(sys.version_info)
# sys.version_info(major=3, minor=7, micro=0, releaselevel='final', serial=0)

print(type(sys.version_info))
# <class 'sys.version_info'>

releaselevelé um fio, e todos os outros elementos são números inteiros.

É possível especificar o índice para obter o respectivo valor.

print(sys.version_info[0])
# 3

A partir da versão 2.7 para a série Python 2 e a partir da versão 3.1 para a série Python 3, acesso aos elementos utilizando nomes (vermajorminormicroreleaselevelserialPor exemplo, se quiser obter a versão principal, pode usar Por exemplo, se quiser obter a versão principal, pode fazer o seguinte

print(sys.version_info.major)
# 3

Se quiser determinar se está a executar Python2 ou Python3, utilize osys.version_info.majorPode verificar a versão principal em2Depois pode usar Python2 para3Depois Python3.

Um exemplo de mudança entre o processamento Python 2 e Python 3 é mostrado abaixo.

if sys.version_info.major == 3:
    print('Python3')
else:
    print('Python2')
# Python3

Se quiser mudar o processo numa versão menorsys.version_info.minorDeterminar o

Note que, como mencionado acima, o acesso a elementos por nome é suportado a partir das versões 2.7 e 3.1, por isso, se for provável que seja executado numa versão anterior, pode utilizarsys.version_info[0]e … esys.version_info[1]especificado por índice.

Cadeia de números de versão: platform.python_version()

platform.python_version()é.major.minor.patchlevelUma função que devolve uma corda no formato

plataforma.python_version()
Devolve a versão Python como uma string no formato 'major.minor.patchlevel'.
platform — Access to underlying platform’s identifying data – Python 3.10.0 Documentation

import platform

print(platform.python_version())
# 3.7.0

print(type(platform.python_version()))
# <class 'str'>

Útil quando se pretende obter o número da versão como uma simples string.

Tuple de cordas de número de versão: platform.python_version_tuple()

platform.python_version_tuple()é.(major, minor, patchlevel)Uma função que devolve um tuple de O conteúdo do tuple não é um número mas um fio.

plataforma.python_version_tuple()
Devolve a versão Python como um tuple de cordas (maior, menor, patchlevel).
platform — Access to underlying platform’s identifying data – Python 3.10.0 Documentation

print(platform.python_version_tuple())
# ('3', '7', '0')

print(type(platform.python_version_tuple()))
# <class 'tuple'>

sys.version_infoUma vez que é apenas um tuple, ao contráriomajore … eminornão é permitido o acesso de elementos pelo nome.

Verificar e exibir a versão Python (por exemplo, sys.version)

Esta secção mostra como obter, verificar e exibir a versão instalada do Python e a versão do Python que está realmente a correr no guião.

Esta secção explica como verificar a linha de comando e o código, respectivamente.

  • Verificar e exibir a versão na linha de comando:--version,-V,-VV
  • Obtenha a versão no código: sys,platform
    • Uma cadeia de várias informações, incluindo o número da versão: sys.version
    • Um tuple numérico de números de versão: sys.version_info
    • Cadeia de números de versão: platform.python_version()
    • Tuple de cordas de número de versão: platform.python_version_tuple()

Se obtiver o número da versão no código, pode utilizar a seguinte função para o visualizar e verificar.print()Também se pode mudar o processo dependendo da versão.

Verificar e exibir a versão na linha de comando: –versão, -V, -VV

Pode verificar a versão executando o seguinte comando a partir do prompt de comando no Windows ou Terminal no Mac.

  • comando
    • python
    • python3
  • Opção
    • --version
    • -V
$ python --version
Python 2.7.15

$ python -V
Python 2.7.15

$ python3 --version
Python 3.7.0

$ python3 -V
Python 3.7.0

Como mostrado no exemplo acima, dependendo do ambiente, os sistemas Python 2.x são atribuídos ao comando python e os sistemas Python 3.x são atribuídos ao comando python3.

A opção -VV foi adicionada em Python 3.6. A opção -VV exibe informações mais detalhadas do que a opção -V.

$ python3 -VV
Python 3.7.0 (default, Oct 21 2020, 10:23:15) 
[Clang 9.1.0 (clang-902.0.39.2)]

Obter versão em código: sys, plataforma

Também pode utilizar o módulo de sistema ou o módulo de plataforma da biblioteca padrão para obter, verificar e exibir a versão do Python que está realmente em execução.

Executar o guião Python para verificar. O guião é o mesmo para Windows, Mac, Ubuntu, e outros sistemas Linux.

Isto é útil para verificar que versão do Python está a ser usada num ambiente onde várias versões do Python estão instaladas, pois é possível executar o Python 2 quando se pensava que se estava a executar o Python 3.

Também pode ser utilizado para ramificação condicional quando se pretende alternar entre o processamento Python 2 e Python 3.

Várias cadeias de informação, incluindo o número da versão: sys.version

sys.version
Esta é uma cadeia que indica várias informações, incluindo o número da versão.

sys.version
Uma string indicando o número de versão do intérprete Python, bem como informações como o número de construção e compilador utilizado.
sys — System-specific parameters and functions – Python 3.10.0 Documentation

import sys

print(sys.version)
# 3.7.0 (default, Oct 21 2020, 10:23:15) 
# [Clang 9.1.0 (clang-902.0.39.2)]

print(type(sys.version))
# <class 'str'>

Tuple numérico do número da versão: sys.version_info

sys.version_info
Este é um tuple que indica o número da versão.

sys.version_info
Um tuple de cinco valores indicando o número da versão: maior, menor, micro, nível de liberação, e série, todos os quais são números inteiros excepto o nível de liberação.
sys — System-specific parameters and functions – Python 3.10.0 Documentation

print(sys.version_info)
# sys.version_info(major=3, minor=7, micro=0, releaselevel='final', serial=0)

print(type(sys.version_info))
# <class 'sys.version_info'>

releaselevel
Isto é um fio, e todos os outros elementos são números inteiros.

É possível especificar o índice para obter o respectivo valor.

print(sys.version_info[0])
# 3

A partir da versão 2.7 para a série Python 2 e da versão 3.1 para a série Python 3, também é suportado o seguinte elemento de acesso por nome.

  • major
  • minor
  • micro
  • releaselevel
  • serial

Por exemplo, se quiser obter a versão principal, faça o seguinte

print(sys.version_info.major)
# 3

Se quiser determinar se está a executar Python 2 ou Python 3, pode usar o seguinte código para verificar a versão principal.
sys.version_info.majorSe o valor de retorno for 2, é Python2, se for 3, é Python3.

Um exemplo de mudança entre o processamento Python 2 e Python 3 é mostrado abaixo.

if sys.version_info.major == 3:
    print('Python3')
else:
    print('Python2')
# Python3

Se quiser mudar o processo com uma versão menor, determine os seguintes valores.
sys.version_info.minor

Note-se que, como mencionado acima, o acesso a elementos por nome é suportado a partir das versões 2.7 e 3.1, portanto, se puder ser executado em versões anteriores, especifique-o por índice como se segue.

  • sys.version_info[0]
  • sys.version_info[1]

Cadeia de números de versão: platform.python_version()

platform.python_version() é uma função que devolve uma string em formato major.minor.patchlevel.

plataforma.python_version()
Devolve a versão Python como uma string no formato 'major.minor.patchlevel'.
platform — Access to underlying platform’s identifying data – Python 3.10.0 Documentation

import platform

print(platform.python_version())
# 3.7.0

print(type(platform.python_version()))
# <class 'str'>

Útil quando se pretende obter o número da versão como uma simples string.

Tuple de cordas de número de versão: platform.python_version_tuple()

platform.python_version_tuple() é uma função que devolve um tuple de (maior, menor, nível de patch).
O conteúdo de um tuple não é um número, mas um fio.

plataforma.python_version_tuple()
Devolve a versão Python como um tuple de cordas (maior, menor, patchlevel).
platform — Access to underlying platform’s identifying data – Python 3.10.0 Documentation

print(platform.python_version_tuple())
# ('3', '7', '0')

print(type(platform.python_version_tuple()))
# <class 'tuple'>

Ao contrário do sys.version_info, é apenas um tuple, pelo que não é possível o acesso de elementos pelo nome.