Atualizando para o python 2.7.5 no Ubuntu 12.04

9

O Ubuntu 12.04 vem python v 2.7.3por padrão. Quero atualizá-lo para v 2.7.5. Eu tentei as instruções fornecidas nesta pergunta ,

sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

O último comando falha com o erro:

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

Como posso fazer essa atualização?

Gabriel
fonte
3
Você tem certeza de que precisa atualizar para o 2.7.5? Todas as correções estão sendo portadas para a versão 2.7.3 no Ubuntu. Você realmente quer economizar todas as suas dores de cabeça com a compilação a partir do código-fonte. Por favor, forneça o motivo específico da instalação do 2.7.5. Neste site, perguntas sobre uma instalação corrompida do Python são diárias e é muito comum ver que isso está sendo causado pela instalação do código-fonte. Veja, por exemplo, askubuntu.com/q/323248/88802
gertvdijk
11
Eu estava usando um pacote da maneira errada, mas a pergunta ainda permanece e eu realmente não entendo o voto negativo sem nenhuma explicação.
22413 Gabriel
O que acontece quando você corre em sudo make **install**vez de sudo make **altinstall**? Você recebe o mesmo erro?
Kevin Bowen
Agora, tenho medo de realmente tentar sua solução, já que ouvi tantas vezes que isso irá quebrar meu sistema. Marcarei sua resposta como aceita, porque ela parece realmente completa. Obrigado.
Gabriel
2
@ Gabriel A solução da maggotbrain é muito boa; Ele permite que você instale a versão de sua escolha em um pyenv. Nenhum dano é causado no Python do seu sistema. Vou lembrar disso para perguntas futuras. :)
gertvdijk

Respostas:

13

A instalação a partir do código-fonte pode ser feita, é claro, mas eu hesitaria em atualizar o pacote python dos meus sistemas Ubuntu a partir do código-fonte por vários motivos:

  1. Fazer isso pode interromper o sistema, fazendo uma compilação direta do código-fonte (não sei exatamente como o Ubuntu personaliza a compilação do pacote Python).

  2. Eu ficaria preocupado que possa haver problemas com o uso de módulos dos repositórios daqui para frente.

Existe um PPA que parece ativo (o trem 2.7.x foi construído pela última vez em abril deste ano), mas o PPA ainda não possui um build 2.7.5. Você pode fazer ping no mantenedor e ver quais são seus planos para futuras compilações e se eles incluirão um para o 2.7.5. Se possível, eu recomendaria isso sobre a instalação da fonte. Como em qualquer novo software, eu recomendo criar isso primeiro em um sistema de teste.

Outra opção é usar uma sandbox ( pyenv) para executar qualquer novo pacote de software não testado. Uma instalação direta no seu sistema pode afetar negativamente a operação da sua máquina.

O pacote pyenv permitirá que você instale uma versão Python que não seja do sistema em sua caixa sem afetar o pacote principal do Python instalado em sua máquina (novamente: seu sistema depende da versão atualmente instalada do Python e a atualização pode danificá-lo). Anteriormente, o Pythonbrew era recomendado para isolar pacotes python do sistema, mas que foi descontinuado e substituído pelo pyenvpacote.

O pyenvpacote fornece a seguinte funcionalidade:

  • Permite alterar a versão global do Python por usuário.
  • Fornece suporte para versões Python por projeto.
  • Permite substituir a versão do Python por uma variável de ambiente.
  • Pesquise comandos de várias versões do Python por vez.

Instalação

  1. Confira pyenv em ~ / .pyenv.

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. Adicione ~ / .pyenv / bin ao seu $ PATH para acessar o utilitário de linha de comando pyenv.

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    Nota do Zsh: modifique seu ~/.zshenvarquivo em vez de ~/.bash_profile.

  3. Adicione pyenv init ao seu shell para habilitar shims e auto-completar.

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    Nota do Zsh: modifique seu ~/.zshenvarquivo em vez de ~/.bash_profile.

  4. Reinicie seu shell para que as alterações no caminho entrem em vigor. Agora você pode começar a usar pyenv.

    exec $SHELL
  5. Instale as versões do Python em ~ / .pyenv / versions. Por exemplo, para instalar o Python 2.7.5, baixe e descompacte o código-fonte e execute:

    pyenv install 2.7.5

    OBSERVAÇÃO Se você precisar passar opções de configuração para criar a partir da fonte, use a variável de ambiente CONFIGURE_OPTS.

  6. Reconstrua os binários de calço. Você deve fazer isso sempre que instalar um novo binário Python (por exemplo, ao instalar uma nova versão do Python ou ao instalar um pacote que fornece um binário).

    pyenv rehash
Kevin Bowen
fonte
11
pyenvé brilhante por muitas razões. Ajuda-me na minha experiência imensamente com o mínimo de problemas após a configuração inicial.
Fahad Yousuf
Isso será executado a partir da homepasta de um usuário específico ? Como posso instalar isso para todos os usuários? Posso instalar ./pyenvem /usr/local/binou isso é uma má idéia?
Biohazard