Tres pasos con Python 3.5 de Software Collections :
sudo yum install centos-release-scl
sudo yum install rh-python35
scl enable rh-python35 bash
Tenga en cuenta que sudo no es necesario para el último comando. Ahora podemos ver que python 3 es el valor predeterminado para el shell actual:
python --version
Python 3.5.1
Simplemente omita el último comando si prefiere tener Python 2 como predeterminado para el shell actual.
Ahora digamos que sus scripts de Python 3 le dan un error como /usr/bin/env: python3: No such file or directory. Esto se debe a que la instalación generalmente se realiza en una ruta inusual:
/opt/rh/rh-python35/root/bin/python3
Lo anterior normalmente sería un enlace simbólico. Si desea python3que se agregue automáticamente a $PATHtodos los usuarios en el inicio, una forma de hacerlo es agregar un archivo como:
sudo vim /etc/profile.d/rh-python35.sh
Lo que tendría algo como:
#!/bin/bash
PATH=$PATH:/opt/rh/rh-python35/root/bin/
Y ahora después de un reinicio, si lo hacemos
python3 --version
Solo debería funcionar. Una excepción sería un usuario generado automáticamente como "jenkins" en un servidor Jenkins que no tiene un shell. En ese caso, agregar manualmente la ruta a los $PATHscripts sería un camino a seguir.
Finalmente, si está utilizando sudo pip3para instalar paquetes, pero le dice que no se puede encontrar pip3 , podría ser que tenga un secure_path en / etc / sudoers . Verificar con esto sudo visudodebería confirmarlo. Para utilizar temporalmente la RUTA estándar al ejecutar comandos, puede hacer, por ejemplo:
sudo env "PATH=$PATH" pip3 --version
Vea esta pregunta para más detalles.
NOTA : Hay un Python 3.6 más nuevo de Software Collections, pero no lo recomendaría en este momento, porque tuve grandes dolores de cabeza al intentar instalar Pycurl. Para Python 3.5 eso no es un problema porque acabo de hacer lo sudo yum install sclo-python35-python-pycurlque funcionó de fábrica.