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 python3
que se agregue automáticamente a $PATH
todos 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 $PATH
scripts sería un camino a seguir.
Finalmente, si está utilizando sudo pip3
para 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 visudo
deberí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-pycurl
que funcionó de fábrica.