Três etapas usando o Python 3.5 da Software Collections :
sudo yum install centos-release-scl
sudo yum install rh-python35
scl enable rh-python35 bash
Observe que o sudo não é necessário para o último comando. Agora podemos ver que python 3 é o padrão para o shell atual:
python --version
Python 3.5.1
Simplesmente pule o último comando, se você preferir o Python 2 como padrão para o shell atual.
Agora, digamos que os scripts do Python 3 causem um erro semelhante /usr/bin/env: python3: No such file or directory
. Isso ocorre porque a instalação geralmente é feita em um caminho incomum:
/opt/rh/rh-python35/root/bin/python3
O acima seria normalmente um link simbólico. Se você deseja python3
ser adicionado automaticamente ao $PATH
para todos os usuários na inicialização, uma maneira de fazer isso é adicionar um arquivo como:
sudo vim /etc/profile.d/rh-python35.sh
O que teria algo como:
#!/bin/bash
PATH=$PATH:/opt/rh/rh-python35/root/bin/
E agora, após uma reinicialização, se fizermos
python3 --version
Deveria apenas funcionar. Uma exceção seria um usuário gerado automaticamente como "jenkins" em um servidor Jenkins que não possui um shell. Nesse caso, adicionar manualmente o caminho $PATH
nos scripts seria um caminho a percorrer.
Finalmente, se você estiver usando sudo pip3
a instalação de pacotes, mas informa que o pip3 não pode ser encontrado, pode ser que você tenha um caminho seguro em / etc / sudoers . A verificação com sudo visudo
deve confirmar isso. Para usar temporariamente o PATH padrão ao executar comandos, você pode executar, por exemplo:
sudo env "PATH=$PATH" pip3 --version
Veja esta pergunta para mais detalhes.
NOTA : Existe um Python 3.6 mais recente da Software Collections, mas eu não o recomendaria no momento, porque tive grandes dores de cabeça ao tentar instalar o Pycurl. Para o Python 3.5, isso não é um problema, porque eu fiz o sudo yum install sclo-python35-python-pycurl
que funcionou imediatamente .