Categories
Linux Programação Tutoriais

Como alterar o sistema para usar a versão mais atual do interpretador Python no Linux.

Você descobriu que o seu sistema tem 2 versões do interpretador Python instaladas, mas o padrão usado não é a versão mais atual?
Saiba como adotar uma das versões como padrão (temporariamente ou permanentemente) sem comprometer a segurança do seu sistema.

Muitos sistemas operacionais atuais, vem com mais de uma versão do interpretador da linguagem Python instaladas e prontas para usar.
A versão padrão é normalmente a mais segura a ser utilizada e, provavelmente, não é a mais atual disponibilizada na sua instalação.
É possível ver quais as versões do interpretador instaladas digitando “python” na linha de comando e pressionando TAB, em seguida, para autocompletar.
Você pode também pedir a versão do interpretador padrão diretamente:

python --version

Python 2.7.12

Outro meio, é listar as versões disponíveis no diretório de programas:

ls -lah --color /usr/bin/python*

Na minha listagem, é possível notar que python, python2 são links, que apontam para o interpretador python2.7.

lrwxrwxrwx 1 root root    9 Jun  3 11:39 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root    9 Jun  3 11:39 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3,4M Jun 29 09:20 /usr/bin/python2.7
lrwxrwxrwx 1 root root    9 Jun  3 11:41 /usr/bin/python3 -> python3.5
-rwxr-xr-x 2 root root 4,3M Jul  5 11:20 /usr/bin/python3.5
-rwxr-xr-x 2 root root 4,3M Jul  5 11:20 /usr/bin/python3.5m
lrwxrwxrwx 1 root root   10 Jun  3 11:41 /usr/bin/python3m -> python3.5m

Isto quer dizer que, no meu sistema, ao digitar ‘python’ na linha de comando, o link irá me direcionar para o interpretador do Python 2.7.
Se você tiver as cores corretamente configuradas no seu sistema, os links estarão diferenciados dos binários.
python links default interpreter
Alterar o binário para o qual o link ‘python’ aponta é fácil, como você talvez já tenha percebido — mas não é seguro e nem recomendado.
O problema é que há algumas incompatibilidades entre as versões.
Alguns aplicativos importantes no seu sistema dependem da versão anterior e se referem a ela apenas como ‘python’.
Se você alterar o link, para que ele passe a apontar para a versão mais atual do interpretador, poderá acabar com um sistema quebrado.

O modo seguro de resolver

Muitos usuários querem executar seus scripts, da linha de comando, digitando apenas ‘python’ — e desejam que o interpretador executado seja o mais atual (3.5, por exemplo).
A documentação oficial (links no final do texto) recomenda alterar as variáveis específicas de cada perfil de usuário.
Esta solução resolve o seu problema, sem causar interferências no seu sistema.
Alternativamente, faça referência à versão do Python desejada dentro do seu script.
Vamos conhecer, a seguir, os detalhes de cada solução, de acordo com as sugestões das comunidades de desenvolvedores.

Use o alias para redefinir as suas preferências

Com o comando alias, é possível (re)atribuir qualquer comando ou conjunto de comandos a uma palavra ou “alias“.
Esta solução é simples e não interfere nas configurações do sistema:

### verifique a versão do interpretador python
python -V
Python 2.7.12
alias python=python3
### verifique a versão do interpretador python
python -V
Python 3.5.2

Se preferir, pode se referir ao nome completo do binário, deste jeito:

alias=/usr/bin/python3.5
### verifique a versão do interpretador python
python --version
Python 3.5.2

Este ajuste só terá validade durante a sessão atual. Se abrir outro terminal, o sistema voltará ao seu padrão.
Esta solução, permite que você use uma versão do interpretador em um terminal e outra versão em outro. Veja a figura abaixo.
python vrsions
Para tornar esta configuração persistente, adicione esta linha de comando ao arquivo ~/.bash_aliases ou ao ~/.bashrc:

### fazer backup, antes de alterar arquivos de configuração
cp .bash_aliases .bash_aliases.backup
### O operador '>>' adiciona uma linha ao arquivo. 
echo "alias python=/usr/bin/python3.5" >> .bash_aliases

Com este procedimento, daqui pra frente, novas sessões do seu usuário, apontarão para a versão do interpretador que você escolheu.

Indique dentro do script qual a versão do Python a ser usada

Esta outra solução é simples e, também, totalmente inofensiva para seu sistema.
Consiste em indicar dentro de cada script a versão do interpretador a ser usada.
Acrescente, na primeira linha, o código:

#!/usr/bin/env python3

ou

#!/usr/bin/python3

O env é mais adequado para uso misto em ambientes virtuais.

Referências

Há outras soluções relatadas, nos artigos e nos comentários, nos links que seguem.
As que testei e funcionaram para mim, estão descritas acima e, portanto, são as únicas que endosso. Elas também têm a vantagem de poder ser facilmente desfeitas.

http://askubuntu.com/questions/320996/make-default-python-command-to-use-python-3.
https://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

3 replies on “Como alterar o sistema para usar a versão mais atual do interpretador Python no Linux.”

A titulo de curiosidade, na hora de editar o bash não precisa indicar o path (pelo menos não no ubuntu 16)
usei simplesmente alias python=python3.5

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.