Melhor maneira de executar o python 3.7 no Ubuntu 16.04, que vem com o python 3.5

17

Eu gostaria de evitar backports, eles sempre parecem atrapalhar meus pacotes.

Então, eu estava pensando em ferramentas como conda / virtualenv / talvez até o docker pode ajudar. Qual é a maneira mais simples / limpa de trabalhar com python 3.7 no meu sistema?

benji
fonte
1
Dê uma olhada em pyenv
Naftuli Kay

Respostas:

33

Isso deve colocá-lo em funcionamento com o Python 3.7 no Ubuntu 16.04

# Install requirements
sudo apt-get install -y build-essential \
checkinstall \
libreadline-gplv2-dev \
libncursesw5-dev \
libssl-dev \
libsqlite3-dev \
tk-dev \
libgdbm-dev \
libc6-dev \
libbz2-dev \
zlib1g-dev \
openssl \
libffi-dev \
python3-dev \
python3-setuptools \
wget

# Prepare to build
mkdir /tmp/Python37
cd /tmp/Python37

# Pull down Python 3.7, build, and install
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar xvf Python-3.7.0.tar.xz
cd /tmp/Python37/Python-3.7.0
./configure
sudo make altinstall

Então você chamaria Python assim:

python3.7 ./yourScript.py

Esta é uma captura de tela de várias versões do Python que coexistem em um contêiner de docker e como elas podem ser distinguidas:

Como chamar versões diferentes do Python

O Pip também deveria ter sido instalado com esta instalação. Para instalar pacotes, use este formato:

pip3.7 --version
Sn3akyP3t3
fonte
1
Isso funciona como um encanto. Eu consegui instalar o python3.7. A única ressalva é usar o sudo make altinstall, pois o acesso ao diretório não era para o usuário normal. todos os apt-get foram instalados usando o sudo também. Muito obrigado por compartilhar as informações.
Doogle
A resposta aceita funcionou bem para mim, com uma ressalva; Eu tive que apt install libffi-devbem para evitar o erro follwing na etapa altinstall (Ubuntu 16.04 LTS):python ModuleNotFoundError: No module named '_ctypes'
moshisushi
@moshisushi Também me deparei com esse problema quando estava trabalhando em uma solução. Por esse motivo, eu já incluí o libffi-dev na instalação inicial.
Sn3akyP3t3
1
Comandos prefixados do @Doogle com sudo, quando necessário. Obrigado por apontar isso. Essas etapas foram extraídas das etapas de criação do contêiner do Docker que assumiram o usuário root.
Sn3akyP3t3
2

Eu não recomendaria mexer manualmente com instalações e caminhos de código-fonte. Usepyenv e salve-se do problema.

Tudo que você tem a fazer é:

  • Execute o pyenvinstalador
  • Siga as instruções
  • Instale as versões do Python necessárias
  • Escolha qual versão do Python você deseja usar para um determinado diretório ou globalmente

Por exemplo, para instalar o 3.7, verifique quais versões estão disponíveis:

pyenv install -l | grep 3.7

Então corra:

pyenv install 3.7.1

Agora, você pode escolher sua versão do Python:

pyenv global 3.7.1

Isso muda pythonpara o ponto 3.7.1. Se você deseja o python do sistema, execute:

pyenv global system

Para verificar quais versões do Python estão disponíveis, execute pyenv versions.

slhck
fonte
0

Você pode baixar o código fonte em www.python.org, compilar e compilar a partir da fonte e, em seguida:

1) Anexe o caminho aos executáveis ​​python PATHe às bibliotecas LD_LIBRARY_PATH.

2) Faça o que eu fiz, compile e construa a partir do código-fonte e faça links simbólicos para os executáveis ​​no /usr/bin. Você pode chamá-lo python37para diferenciá-lo do python 3.5que já está instalado.

O primeiro método o utilizará em seu ambiente por padrão, enquanto que com o segundo, você precisará especificá-lo com o comando usado para o link simbólico. Você pode usar o segundo método primeiro antes de torná-lo o padrão, como python 3.7ainda está em desenvolvimento.

Nasir Riley
fonte