Como instalo uma versão diferente do Python usando o apt-get?

125

Como posso instalar uma versão diferente do Python usando o apt-get?

Obviamente, eu sei que posso instalar usando a fonte tar ball, no entanto, eu preferiria não instalar a partir da fonte e, em vez disso, usar o gerenciador de pacotes, pois é para isso que serve. Certamente em algum lugar respeitável cria arquivos .deb para as versões mais recentes do Python (por que o python.org não está além de mim) que posso referenciar.

O que preciso fazer para referenciá-los e quais problemas ele pode criar ao atualizar para a próxima versão?

Se não houver outra maneira, exceto a construção a partir do código-fonte, existe um (pseudo) pacote que eu possa instalar que fornecerá todas as dependências necessárias sem precisar encontrar e instalar cada uma individualmente? Para que eu não entenda:

The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _lzma              
_sqlite3              _ssl                  _tkinter           
readline              zlib  
atormentar
fonte
você já conseguiu E: Couldn't find any package by regex 'python3.5'e, portanto, não conseguiu instalar via apt-get install python3.5?
Charlie Parker
pergunta semelhante: askubuntu.com/questions/310441/…
Charlie Parker
algumas boas sugestões aqui: quora.com/…
Charlie Parker
1
@CharlieParker Você tentou instalar o Anaconda ?
M. Becerra

Respostas:

169

Felix Krull executa um PPA oferecendo basicamente qualquer versão do Python (sério, existe 2.3.7 build for vívido ...) para muitas versões do Ubuntu em https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa .

Faça o habitual:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.5

Ele não substituirá o seu existente, python3.4que ainda está vinculado como python3.

NÃO mude o link simbólico! Aparentemente, existem muitas funções do sistema que não funcionam corretamente com o python3.5.

Eu tentei isso e depois não consegui abrir um terminal, atualizador de software, ...

cd /usr/bin
sudo rm python3

A atualização para o Wily irá adaptar o meta-pacote python3para apontar python3.5. Não espero nenhuma quebra, mas neste momento o repositório externo não é mais necessário. Para ser realmente seguro, você pode limpar o PPA antes de fazer a atualização.

Nephente
fonte
5
para noob lá fora, não faça o link simbólico! Também não link simbólico significa apenas que você precisa digitar python3.5 a partir da linha de comando para executar python 3,5
Chris Hawkes
4
Você poderia me indicar, como posso usar o pip do 3.4 com este 3.5?
Groosha
2
@ kondra007 Segui as instruções de pip.pypa.io/en/stable/installing ( leia o aviso aqui) e esses dois comandos wget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.pyme deram um pip de trabalho para o python 3.5, mas o pip3.4 não está mais funcionando. Se alguém souber melhor, por favor comente
ndemou
2
Também para definir python3.5 como o padrão ~$ vim ~/.bashrce adicione isso alias python=python3.5. então~$source ~/.bashrc
Krishnadas PC 16/10
1
Dicas: se add-apt-repository: command not found, corra apt-get install software-properties-common python-software-propertiespara instalar
Mithril
35

Este link do YouTube me ajudou a instalá-lo.

Os passos são:

sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
tar xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
sudo make install

Para verificar se o python está instalado, digite python3.5outro:

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5
joydeep bhattacharjee
fonte
3
OP disse que não quer compilar a partir da fonte
Michael Bates
3
Sim você está certo. A compilação a partir da fonte também pode apresentar alguns problemas de dependência mais adiante. Mas foi assim que resolvi. Se existe uma maneira melhor, eu definitivamente gostaria de saber.
joydeep Bhattacharjee
5
Considere ./configure --enable-optimizations stackoverflow.com/questions/41405728/…
warvariuc
1
@CharlieParker porque o Python não foi criado para um sistema operacional específico. Ele deve ser executado em qualquer plataforma. Para Linux, isso significa que cada versão deve ser compilada e distribuída para cada versão de cada distribuição Linux (das quais existem muitas), ou eles distribuem a fonte e permitem que o usuário a compilem no ambiente em que serão distribuídos. usava. O último é muito mais viável.
CJStuart 03/09
2
Você também precisa do compilador c / c ++ deapt-get install build-essential
bato3 /
13

Basta seguir estas etapas (testadas):

Etapa 1 - Instalar pacotes necessários

Use o seguinte comando para instalar os pré-requisitos para o Python antes de instalá-lo.

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

Etapa 2 - Faça o download do Python 3.5.2

Faça o download do Python usando o seguinte comando no site oficial do python. Você também pode baixar a versão mais recente no lugar do especificado abaixo.

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

Agora extraia o pacote baixado.

sudo tar xzf Python-3.5.2.tgz

Etapa 3 - Compilar a fonte Python

Use o conjunto de comandos abaixo para compilar o código-fonte python no seu sistema usando o altinstall.

cd Python-3.5.2
sudo ./configure
sudo make altinstall

make altinstallé usado para impedir a substituição do arquivo binário python padrão /usr/bin/python.

Etapa 4 - Verifique a versão do Python

Verifique a versão mais recente instalada do python usando o comando abaixo.

$ python3.5 -V

Python 3.5.2

Fonte .

Bilal
fonte
2
+1 por usar o altinstall por padrão. Não há muitos cenários reais em que você possa viver apenas com uma versão. Mesmo em sistemas com Python3 como padrão, você pode ser forçado a instalar o Python como invertido -> Python2 ou adicionar o Python2.
Erm3nda
1
Ocorreu um erro como descrito aqui - bugs.python.org/issue31652 teve que ser executado sudo apt-get install libffi-devpara resolvê-lo.
Nishan Chathuranga
Eu também adicionaria sudo apt-get install liblzma-devpara ativar o suporte ao lzma.
v.grabovets
6

Tanto quanto eu posso dizer, pelo menos em um contêiner de docker, é possível definir definitivamente o apt-getpython 3.

Primeiro, encontrei um contêiner ubuntu com contêiner:

docker run -it --rm ubuntu:latest bash

então, por algum motivo, foi necessário atualizar algumas coisas do ubuntu, como fiz (dentro do contêiner):

apt-get update && apt-get install -y build-essential git libjpeg-dev

e então eu simplesmente instalei o python3 e parece que o python ficou automaticamente 3.5:

apt-get install python3
apt-get install python3-pip

e para testar se o pip funciona, vamos baixar algo:

pip3 install tensorflow

tudo parece funcionar bem para mim.

Nota importante: parece que, se você já possui o python 3.4 instalado, apt-get install python3não funciona porque diz que já o possui. Parece que esse foi um dos meus problemas, porque eu estava iniciando a partir de uma imagem do docker do tensorflow (em particular gcr.io/tensorflow/tensorflow:latest-devel-py3) e de algo nessa imagem (presumo que eles já tenham o python 3.4, mas pode ser outra coisa) não me permitiu atualizar meu python para obter python 3.5.


crédito: Eu descobri isso quando perguntei o seguinte: https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the -tensorflow-docker


Nota: também é possível instalar o Anaconda. Para um exemplo de janela de encaixe, pode-se fazer:

docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash

do site oficial: https://hub.docker.com/r/continuumio/anaconda3/

Esta solução instala o python 3.6, mas tenho certeza que, se você procurar nele, poderá obter o python 3.5 se for isso o que deseja.

Nota: você provavelmente deve estar usando um ambiente virtual como env virtual ou conda / anaconda, a menos que esteja usando o docker de qualquer maneira. Só queria lembrar as pessoas.

Charlie Parker
fonte
1
"in a docker container" é uma declaração muito genérica: tudo depende de qual imagem o container se baseia, por exemplo, em qual versão do Ubuntu. Além disso, pode haver versões menores, como 3,5 ou 3,6, que não estão disponíveis em uma versão Ubuntu 14.04 (por exemplo)
giorgiosironi
2

Há várias distribuições python mais novas disponíveis para instalação via apt-get listadas nos Pacotes do Ubuntu

como exemplo, as seguintes versões estão disponíveis no momento:

python2.7

python3.2

python3.4

python3.5

python3.6

A disponibilidade varia de acordo com a versão do Ubuntu. Por exemplo, 3.5 está disponível para Xenial, Yakkety e Zesty e 3.6 está disponível para Yakkety e Zesty, mas você deve ativar o repositório Universe se não estiver habilitado para obtê-los através do apt-get. Para verificar a disponibilidade da sua versão do Ubuntu, verifique os links acima.

Uma espiada rápida indica que esta resposta também é válida, pois o PPA possui 3,6, mesmo para o Trusty.

Elder Geek
fonte
as versões Python disponíveis no Ubuntu Repo não são a versão mais recente do Python .
yaitloutou
@yaitloutou A pergunta diz "mais recente" e não "mais nova" Por todos os meios, sinta-se à vontade para escrever uma resposta melhor.
Elder Geek
Você está correto, mas desde mais recente relativamente ao que não é especificado que eu interpretei como o mais novo :)
yaitloutou
@yaitloutou Sinta-se livre e, por todos os meios, escreva uma resposta melhor! Tenho certeza que seria apreciado.
Elder Geek
Comecei a ficar ativo aqui e ainda estou aprendendo. Desculpe se você encontrar meu comentário sobre a sua resposta intrusivos
yaitloutou
0

Eu consideraria usar ambientes virtuais em vez de instalar versões python via apt-get.

O uso de ambientes virtuais, veja aqui, é uma boa prática para o desenvolvimento com python. Eles permitem que você isole seu ambiente python das versões python instaladas no sistema.

Além disso, você não precisa obter acesso ao sudo enquanto instala qualquer biblioteca (via pip etc.).

devrimbaris
fonte
11
Eu acho que você precisa instalar a versão do python desejada antes de poder usá-lo em um ambiente virtual.
Nzbuu 9/07
1
Você instala a versão desejada do python no ambiente virtual e altera o caminho relacionado ao python executando apenas o script "ativar" no ambiente virtual.
Devrimbaris
Na verdade, é exatamente isso que quero fazer - a primeira coisa que tentei fazer depois de seguir a resposta de @ Nephente foi apontar para isso virtualenv -p. Mas explodiu com "ImportError: não é possível importar o nome 'HTTPSHandler'".
Michael Scheper
1
por que isso foi prejudicado? envs virtuais geralmente funcionam bem.
Charlie Parker
como você instala um ambiente virtual no ubuntu (como na sua sugestão) mas com python 3.5?
Charlie Parker
0

O Conda é atualizado ativamente e permite que você instale várias versões python em venvs gerenciados sem o tédio de configurar tudo sozinho. Os problemas de processamento de extensões de binários podem ter sido resolvidos em muitas das cadeias de dependência / pip gerenciadas do anaconda usadas.

RobotHumans
fonte