Como instalar a versão mais recente do Python no Debian separadamente ou atualizar?

35

Ainda sou novo no Linux, então ainda estou tentando entender onde estão os executáveis ​​e suas bibliotecas e como instalar pacotes, por isso tenho o Debian Wheezy 7.3, que possui estas versões do Python:

  • Python 2.7.3 (padrão)
  • Python 2.6.8

Portanto, no diretório, /usr/bin/existem esses arquivos que eu posso chamar do terminal:

  • python (que é um link para python2.7)
  • python2 (também um link para python2.7)
  • python2.6 (executável em Python 2.6.8)
  • python2.7 (executável em Python 2.7.3)

e nas /usr/lib/principais pastas:

  • python2.6
  • python2.7

Atualmente, a versão mais recente do Python é a 2.7.6, que eu quero instalar, mas não sei como, tentei usar o apt-get:

apt-get install python

ele gera python is already the newest version..

Então, como posso instalar a versão mais recente do Python? na página de download do Python, há o tarball de origem, como posso instalá-lo separadamente, como ter outra pasta no /usr/lib/gosto python2.7.6e fazer o pythonlink /usr/bin/apontar para o novo executável, ou talvez atualizar a versão atual, se não quebrar nada .

Pierre
fonte
Você poderia fazer o backport do Python 2.7.6 de testing / unstable e substituir o seu atual 2.7.3 por ele. Provavelmente, isso não causará nenhum problema. Se isso acontecer, você pode reverter facilmente.
Faheem Mitha
Eu nem o instalei, fiz uma nova instalação do Debian e digite "python" na linha de comando e estou no shell python3.
frozenjim

Respostas:

16

Você provavelmente está procurando virtualenvou pyenvou algum outro método não-todo o sistema para instalar Python. O método que usa o APT (Advance Package Tool) e dpkggarante que todas as partes do sistema estejam funcionando em harmonia; portanto, talvez você queira instalar o python em um caminho separado, oculto de todos os outros programas que você pode chamar à vontade, o que é o objetivo de pyenv/ virtualenv. Isso responde como instalar a versão mais recente do python sem interromper o sistema .

BTW, você pode conferir a versão mais recente do python que o Debian em madison , enquanto a versão mais recente do python 2 na data é a que você apontou:

  ~  apt-cache policy python
python:
  Installed: 2.7.5-5
  Candidate: 2.7.5-5
  Version table:
 *** 2.7.5-5 0
        500 http://ftp.us.debian.org/debian/ testing/main i386 Packages
        100 /var/lib/dpkg/status

(pythonbrew não é mais mantido).

Braiam
fonte
ok Eu instalei o pip e o virtualenv como root, então como posso criar um ambiente virtual com uma nova versão do Python? até onde eu sei, precisamos que a nova versão seja instalada primeiro, certo?
Pierre
1
@ Peter Eu acho que o primeiro passo é pyenv install 2.7.6. Você pode verificar todas as versões usandopyenv install -l
Braiam
27

Ok, depois de muita pesquisa, decidi construir o Python a partir do código-fonte, então baixei o tarball do código-fonte compactado na página de download do Python , agora precisamos instalar o build-essentialpacote para poder compilar os arquivos de origem:

apt-get install build-essential

Também precisamos instalar estes pacotes de desenvolvimento que são necessários para alguns módulos Python:

libbz2-dev
libsqlite3-dev
libreadline-dev
zlib1g-dev
libncurses5-dev
libssl-dev
libgdbm-dev

Em seguida, extraímos o arquivo fonte baixado:

tar zxf Python-2.7.6.tgz

então entramos cdno diretório extraído:

cd Python-2.7.6

e siga as instruções nos documentos do Python :

./configure --prefix=/opt/python
make
make install # <- in the docs but don't execute: use checkinstall

Eu escolhi instalá-lo no diretório /opt/pythonque eu criei antes, também usei o pacote checkinstall para criar um arquivo .deb, para que eu possa desinstalar facilmente mais tarde, então o instalamos primeiro:

apt-get install checkinstall

e substitua a última linha make installpor:

checkinstall

agora tenho uma nova instalação python em /opt/python/lib/python2.7e o arquivo binário está em /opt/python/bin/python2.7.

agora eu posso rodar na linha de comando /opt/python/bin/python2.7para usar esta versão do Python, também podemos criar um link para esse executável para não digitar o caminho completo, eu o nomeei python2.7.6.

ln -s /opt/python/bin/python2.7 /usr/local/bin/python2.7.6

Além disso, o diretório /opt/python/binconterá posteriormente outros executáveis ​​como pipe / virtualenvou quaisquer outros módulos que você instalar, para que possamos adicioná-lo à variável de ambiente PATH, editar ~/.profilee adicionar esta linha:

PATH="$PATH:/opt/python/bin"

e corra:

source ~/.profile

Anexei o caminho até o fim, porque ele contém nomes executáveis ​​como os do /usr/bintipo like python, python2e python2.7por isso mantemos a prioridade mais alta para /usr/bin.

Pierre
fonte
Agora, você saberia como configurar seu novo python para ver os módulos que foram instalados via apt-get?
elsurudo
Infelizmente para o Python 2.6, a compilação a partir do código-fonte não funciona corretamente no Debian 8 (Jessie), mas eu descobri, pelo menos para um Raspberry Pi, que era capaz de usar pacotes mais antigos do packages.debian.org . A ordem, supondo que o essencial da compilação já esteja em vigor, é algo como libdb, python2.6-minimal, python2.6, libpython2.6, python2-6-dev, mas dpkg -iinformará o que é necessário.
Charlie Clark
1
@elsurudo Isso não faria sentido, porque os módulos podem não ter suporte em sua nova versão. Se você deseja controle total sobre o seu Python (como você faz ao compilar a partir do código-fonte), também desejará instalar os módulos separadamente.
tripleee
-1

você pode usar:

aptitude install python3.5  

ou, se você não instalou o aptitude, poderá instalá-lo usando:

apt-get install aptitude
John
fonte