Alterando a versão padrão de Python no Linux

Tenho várias versões de Python instalado aqui no meu sistema, e antes de ter instalado a mais nova versão, o Python 2.7, o meu Ubuntu tinha como versão default o Python 2.6. Após a instalação dessa nova versão notei que no terminal ao ser digitado apenas python, sem  especificar a versão do interpretador, ele iniciava o 2.7.  Corrigir esse problema para alguns poderia ser apenas comodismo, mas, em um sistema como o Linux, que possui vários scripts rodando em Python, a simples alteração do interpretador default poderia causar um problema bem maior.

Pesquisei um pouco na internet, e encontrei a solução, mas, para minha surpresa o problema persistiu. O detalhe que estava faltando só encontrei numa lista de discurssão, vou explicar o que se deve fazer. Não tenho certeza mas creio que essa dica funcione em qualquer distro que seja baseada no Debian.

1 – Edite o arquivo /usr/share/python/debian_defaults

$ sudo gedit /usr/share/python/debian_defaults

2 – Coloque na linha default-version a versão desejado do Python

default-version = python2.6

3 – Ainda no arquivo, adicione na linha supported-versions as versões instaladas.

supported-versions = python2.6, python3.0, python2.7

Feche o arquivo, e vamos para a etapa final.

4 – Com o comando which descubra qual link o shell está acessando o interpretador.

$ which python # informa o path

/usr/bin/python

Um breve comentário deve ser feito aqui, quando instalei o Python 2.7 o shell estava acessando python por um link /usr/local/bin/python devido a isso sempre que fazia a etapa 5, nada era modificado. Quando vi pelo comando which que ele estava acessando outro link, apenas o exclui e ele voltou a acessar o do /usr/bin/python.

5 – Remova o link simbólico informado na  etapa 4 ( /usr/bin/python ) e crie um novo link para a versão que deseja ter como default.

sudo rm /usr/bin/python

ln -s /usr/bin/python2.6 /usr/bin/python # cria um link simbólico

Com essas alterações, tudo voltou ao normal. Talvez seja necessário abrir novamente o shell.

Rodrigo Lira


  • Filipe

    Rodrigo, esse teu post já me salvou umas 3 vzs
    vlw

    • Que bom, Filipe! Vou tentar postar mais nesse blog,
      esse período a faculdade consumiu muito tempo meu e eu
      mal postei aqui. abraço

  • Toninho Nunes

    Salvou a pátria, eu estava tendo problemas quando migrei para o Ubuntu 11.10, ainda não estou usando a versão 2.7, mas vou começar a usá-la, vou partir para o virtualenv.

    • Virtualenv é muito legal Toninho, apesar de usar o básico, vou tentar postar algo sobre ele nesses próximos meses.

  • If some one wishes expert view regarding blogging and site-building afterward i advise him/her to visit this webpage, Keep up the fastidious job.

  • Post muito bom! porém, não aconselho colocar mais de uma versão em “supported-versions”. Ou seja, se for instalar a 3, coloque python3. Isso pode gerar erros no DPKG do ubuntu, pois o arquivo “/usr/share/python/debpython/version.py” carrega a versão do python logo após “supported-version”, e este arquivo é reponsável por parte do funcionamento do dpkg. Um exemplo seria o não funcionamento do “apt-get install”.

    Att,

  • Muito Obrigada Rodrigo!!! Estava aqui com um servidor fora do ar porquê o mod_python não era importado e era justamente pq o So estava puxando a versão errada do python. Valeu !

    Obs: O ‘breve comentário’ no item 4 é que foi a salvação 😉

  • Feitosa

    Parabéns pelo post. Me ajudou muito. Simples e direto. Você é 10. vlw

  • Ayron Gabriel

    Fiz o procedimento e deu certo, porém quando vou importar o django ele não encontro modulo.

    • Ayron, o django foi realmente instalado para a versão que você estar usando?

      • Ayron Gabrieliron

        Resolvido parceiro, de fato não estava!

  • Othon

    Olá Rodrigo, apesar da sua dica estar mais completa, também há uma opção simples; criar-se um alias para os usuários do Linux.

    No promt de comandos: alias python=python3

    Para ficar permanente coloca-se no final do arquivo ~/.bashrc a linha acima

    Vlw