Que versão do Python eu tenho?

56

Como posso descobrir quais versões do Python eu tenho?

Estou usando o Ubuntu 14.04 (Trusty Tahr).

    
por TechJhola 31.07.2014 / 17:52

8 respostas

70

Você pode usar python -V (et al.) para mostrar a versão do Python para a qual o comando python resolve. Se isso é tudo que você precisa, está feito. Mas para ver todas as versões do python no seu sistema é necessário um pouco mais.

No Ubuntu, podemos verificar a resolução com readlink -f $(which python) . Em casos padrão em 14.04, isso simplesmente apontará para /usr/bin/python2.7 .

Podemos encadear isso para mostrar a versão dessa versão do Python:

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/usr/bin/python2.7: Python 2.7.6

Mas isso ainda está nos dizendo qual é a nossa atual python de resolução. Se estivéssemos em um Virtualenv (um sistema comum de gerenciamento de pilha Python), python poderia resolver para uma versão diferente:

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4

Esta é uma saída real.

O fato é que pode haver centenas de versões diferentes do Python segregadas em torno do seu sistema, seja em caminhos que são adicionados contextualmente ou vivendo sob nomes binários diferentes (como python3 ).

Se assumirmos que um binário do Python sempre será chamado de python<something> e um arquivo binário, poderemos procurar em todo o sistema por arquivos que correspondam a esses critérios:

$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; | awk -F: '/x-executable; charset=binary/ {print }' | xargs readlink -f | sort -u | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
/media/ned/websites/venvold/bin/python: Python 2.7.4
/srv/chroot/precise_i386/usr/bin/python2.7: Python 2.7.3
/srv/chroot/trusty_i386/usr/bin/python2.7: Python 2.7.6
/srv/chroot/trusty_i386/usr/bin/python3.4: Python 3.4.0
/srv/chroot/trusty_i386/usr/bin/python3.4m: Python 3.4.0
/usr/bin/python2.7: Python 2.7.6
/usr/bin/python2.7-dbg: Python 2.7.6
/usr/bin/python3.4: Python 3.4.0
/usr/bin/python3.4dm: Python 3.4.0
/usr/bin/python3.4m: Python 3.4.0
/web/venvold/bin/python: Python 2.7.4

É obviamente um comando muito horrível, mas isso é mais uma vez uma saída real e parece ter feito um trabalho bastante completo.

    
por Oli 01.08.2014 / 15:10
50

Digite seguinte no terminal ( Ctrl + Alt + T ):

python -V

ou

python --version

Você pode encontrar uma lista de opções / parâmetros para muitos comandos no terminal, digitando o comando seguido por - help

Exemplo:

python --help

Manuais / manpages também disponíveis para a maioria dessas CLI, que podem ser exibidas por man <command> (Ex: man python )

De man python :

COMMAND LINE OPTIONS
        -V ,  --version
              Prints the Python version number of the executable and exits.

Há também python3 instalado em muitas máquinas, então você pode fazer:

python3 --version

para descobrir qual python 3.x você está executando.

    
por iffy 31.07.2014 / 17:55
29
python --version

e

python2 --version

mostra a versão do Python 2.x,

python3 --version

a versão instalada do Python 3.x

    
por Florian Diesch 31.07.2014 / 17:56
8

Quando você executa python no terminal, ele produzirá a saída da seguinte forma:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Veja a primeira linha - Python 2.7.6 .

Execute também python3 . Eu tenho 3.4.1

Python 3.4.1 (default, Jul 31 2014, 12:46:17) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

No entanto, isso não mostrará todas elas. Se você tiver duas ou mais versões do python 3.X.x, verá apenas a mais recente.

Por padrão, em 14.04, você tem 2.7.6 e 3.4.0. Como você pode ver, atualizei para o 3.4.1. Eu sei que ainda tenho 3.4.0 porque quando eu vou para /usr/bin eu vejo python3.4 , e se eu executar /usr/bin/python3.4 na linha de comando, eu recebo 3.4.0, e executando /usr/local/bin/python3.4 me dá 3.4. 1

    
por Tim 31.07.2014 / 17:59
5

Você também pode verificar a versão do Python a partir do próprio código usando o módulo platform da biblioteca padrão. Existem duas funções: platform.python_version() (retorna string) e platform.python_version_tuple() (retorna tupla). Script:

import platform

print(platform.python_version())
print(platform.python_version_tuple())

Em exibição:

$ python test.py 
3.4.1
('3', '4', '1')
$ python2.7 test.py 
2.7.8
('2', '7', '8')
    
por Nykakin 01.08.2014 / 21:01
3

Se você quiser ver todas as versões do Python disponíveis como comandos, execute compgen -c python . Por exemplo:

$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2

Se você quiser obter a versão de cada um dos itens acima, aqui está um pequeno verso que escrevi:

$ for p in $(compgen -c python); do printf "%-16s" $p; $p --version; done
python2.7      Python 2.7.6
python3.4m     Python 3.4.3
python3.4      Python 3.4.3
python3m       Python 3.4.3
python         Python 2.7.6
python3        Python 3.4.3
python2        Python 2.7.6

Atualizar : acabei de adicionar alguns pacotes e observei que python*-config programs não suportam o --version flag. Por exemplo:

$ python3-config --version
Usage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir
    
por wjandrea 12.03.2017 / 18:49
2

Abra facilmente o terminal e faça o seguinte:

Escreva

python

para verificar sua versão 2.x No meu caso, aparecerá:

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Para o 3.x, escreva:

python3

No meu caso, aparece:

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.

Para ambos os casos, para sair do shell Python, escreva:

 exit()
    
por Willington 31.07.2014 / 18:06
1
  • No terminal do shell

    $ which -a python lista todos os seus python .

    $ which -a python2.7 lista todos os seus python2.7 .

    $ /usr/bin/python -V fornece informações sobre a versão de /usr/bin/python .

  • verifique no script python

aqui está uma ilustração no shell ipython:

In [1]: import sys

In [2]: sys.version
2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Dec  6 2015, 18:08:32) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

In [3]: sys.version_info
sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)

In [4]: sys.version_info >= (2,7)
Out[4]: True

In [5]: sys.version_info >= (3,)
Out[5]: False
    
por Lee 26.05.2016 / 16:04

Tags