Diferença de versão e retrocompatibilidade são problemas que desenvolvedores tem que tratar com frequência. Uma das formas de se fazer isso com Python é verificando qual é a versão está sendo utilizada no momento. Abaixo estão algumas formas de se fazer isso.
A primeira delas é utilizando sys.version. Ele é uma string que retorna uma série de informações e podemos (facilmente) extrair apenas o número da versão:
>>> import sys >>> >>> print(sys.version) '3.4.3 (default, Nov 17 2016, 01:08:31) \n[GCC 4.8.4]' >>> >>> print("Versão atual do Python: %s" % sys.version.split(" ")[0]) Current Python Version: 3.4.3
Como demonstrado, a propriedade sys.version retorna uma string com duas linhas. Uma das formas de extrair o número da versão seria quebrar (split) a string utilizando espaços como referência e pegar a primeira posição do vetor. A alternativa para o split(” “) seria utilizar sys.version[:5], mas quando um dos números da versão passar a utilizar duas casas (exemplo: 3.4.10), esta segunda forma irá falhar.
Existe uma segunda forma de se fazer isso é utilizando a sys.version_info. Ela retorna um vetor com as informações separadas, veja o exemplo:
>>> import sys >>> >>> sys.version_info sys.version_info(major=3, minor=4, micro=3, releaselevel='final', serial=0) >>> >>> version_detail = "Major: %s\r\n" % sys.version_info[0] >>> version_detail += "Minor: %s\r\n" % sys.version_info[1] >>> version_detail += "Micro: %s\r\n" % sys.version_info[2] >>> version_detail += "Release Level: %s\r\n" % sys.version_info[3] >>> version_detail += "Serial: %s\r\n" % sys.version_info[4] >>> print(version_detail) Major: 3 Minor: 4 Micro: 3 Release Level: final Serial: 0
Conforme demonstrado no exemplo acima, a sys.version_info retorna um vetor com as informações de versão separadas por: major, minor, micro, release level e serial. Desta forma, se a sua quebra de compatibilidade for entre Python 2 e 3, você pode utilizar apenas a informação de major ([0]) do vetor. Pessoalmente, acho esta abordagem mais flexível para fazer esta verificação.
Considerando estas duas formas, veja abaixo o exemplo de como verificar a versão atual do Python:
>>> import sys >>> >>> if sys.version_info[0] < 3: ... print("Sorry, i need Python 3+ to run.") ... else: ... print("Great! You're running Python 3! Let's do stuff!") ... Great! You're running Python 3! Let's do stuff!
Se quiser estes fontes de exemplo, eles estão disponíveis no nosso github.
Espero ter ajudado!
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022