Instalar una versión personalizada de Python 3

Generalidades

Python3 solo está disponible en servidores que corren Ubuntu 18 (Bionic). Si tu servidor sigue corriendo Ubuntu 14 (Trusty), puedes instalarlo manualmente usando un usuario Shell. Visita el siguiente artículo para ver información de cómo confirmar la versión que tu servidor está corriendo.

Para instalar una versión personalizada de Python, debes descargar la versión de python.org.

El siguiente artículo describe como instalar Python 3.6.2 y 3.7.1 en su usuario del sitio web.

Para correr los siguientes comandos, debes iniciar sesión en tu servidor vía SSH con tu usuario Shell. Ve los siguiente artículos para más información:

Instalar Python 3.6.2

  1. Inicia sesión en tu servidor vía SSH, y luego corre el siguiente comando uno a la vez.
    [server]$ cd ~
    [server]$ mkdir tmp
    [server]$ cd tmp
    [server]$ wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
    [server]$ tar zxvf Python-3.6.2.tgz 
    [server]$ cd Python-3.6.2
    [server]$ ./configure --prefix=$HOME/opt/python-3.6.2 [server]$ make [server]$ make install
    • Estos comandos instalan tu versión local de python a /home/<usuario>/opt/python-3.6.2.
  2. Ve de vuelta al directorio home de tu usuario:
    [server]$ cd ~
  3. Ve el artículo crear y editar un archivo vía SSH para ver instrucciones de como editar el archivo existente .bash_profile. Para usar la nueva versión de Python sobre el que está por defecto, ingreasa la siguiente línea al .bash_profile:
    export PATH=$HOME/opt/python-3.6.2/bin:$PATH
  4. Guarda y cierra el archivo, luego regresa a tu Shell. Corre el siguiente comando para actualizar el archivo:
    [server]$ . ~/.bash_profile
  5. Mira que versión de Python estás usando ahora ingresando el siguiente comando:
    [server]$ which python3
    /home/username/opt/python-3.6.2/bin/python3

    Puedes ver también las versión:

    [server]$ python3 --version
    Python 3.6.2

    Si no hay respuesta, entonces la nueva copia descargada no está siendo usada. Muy probablemente es porque el archivo .bash_profile no fué actualizado correctamente. Trata de cerrar e iniciar nuevamente sesión. Si es necesario, repite los pasos de arriba.

Instalar Python 3.7.1+

Esas instituciones han sido probadas en la versión 3.8.0.

Nota importante sobre la versión 3.7.1 en Trusty en los servidores

Si tu servidor está corriendo Ubuntu 14 (Trusty) y deseas instalar la Versión 3.7.1+ de Python, necesitarás instalar unas versión personalizada de OpenSSL. Esto es porque las nuevas versiones de Python requires OpenSSL (1.0.2 o mejores) que el viejo servidor Ubuntu no tiene. También necesitarás instalar OpenSSL localmente luego configurar Python para usar la versión local de OpenSSL. Vé el siguiente link para más detalles:

Ésto explica lo siguiente:

Cambia en la versión 3.6: OpenSSL 0.9.8, 1.0.0 y 1.0.1 son obsoletas y no soportadas. En el futuro el módulo SSL requerirá al menos OpenSSL 1.0.2 y 1.1.0.

Esto solo aplica si el servidor está corriendo Ubuntu 14. Tu puedes verlo, corriendo el siguiente comando vía SSH:

[server]$ cat /etc/issue
Ubuntu 14.04.5 LTS \n \l

Si tu servidor está corriendo la versión 18 (Bionic), no necesitas instalar OpenSSL.

[server]$ cat /etc/issue
Ubuntu 18.04.1 LTS \n \l

Instalar OpenSSL

Vé el siguiente artículo para ver instrucciones de como instalar OpenSSL localmente dentro de tu usuario Shell:

Instalar

  1. Inicia sesión en tu servidor vía SSH, y luego corre el siguiente comando uno a la vez:
    [server]$ cd ~
    [server]$ mkdir tmp
    [server]$ cd tmp
    [server]$ wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
    [server]$ tar zxvf Python-3.7.1.tgz 
    [server]$ cd Python-3.7.1
  2. Cambia al directorio 'Modules'.
    [server]$ cd Modules
  3. Edita el archivo llamado 'Setup.dist'. La sección que buscas es más o menos en la línea #211. Ve el artículo 'Editar un archivo usando vim' para ver instrucciones.
    [server]$ vim +211 Setup.dist
  4. Necesitarás editar la línea #211-214 eliminando el signo # en frente de esas líneas. Debes también editar la primera línea al camino donde instalaste OpenSSL locamente dentro de tu usuario. Esto asume que has seguido el artículo e instalado en un directorio llamado 'openssl'
    Asegúrate de cambiar 'username' a tu usuario Shell.
    SSL=/home/username/openssl
    _ssl _ssl.c \
            -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
            -L$(SSL)/lib -lssl -lcrypto
  5. Ve nuevamente al directorio Python-3.7.1. Puedes ahora configurar e instalar Python.
    [server]$ cd ..
    [server]$ ./configure --prefix=$HOME/opt/python-3.7.1
    [server]$ make
    [server]$ make install
    • Esos comandos instalan tu versión local de Python a /home/<username>/opt/python-3.7.1.
  6. Navega de nuevo al directorio home de tu usuario:
    [server]$ cd ~
  7. Ve el artículo crear y editar un archivo vía SSH para ver instrucciones de como editar el archivo .bash_profile existente. Para usar la nueva versión de Python sobre la que tiene el sistema, ingresa la siguiente línea a tu .bash_profile:
    export PATH=$HOME/opt/python-3.7.1/bin:$PATH
  8. Guarda y cierra el archivo, y regresa a tu shell. Corre el siguiente comando para actualizar este archivo:
    [server]$ . ~/.bash_profile
  9. Mira la versión de Python que estás usando ahora corriendo el siguiente comando:
    [server]$ which python3
    /home/username/opt/python-3.7.1/bin/python3

    Puedes ver también la versión:

    [server]$ python3 --version
    Python 3.7.1

    Si no hay respuesta es por que la nueva copia descargada no está siendo usada. Esto es más porque .bash_profile no está siendo actualizada correctamente. Trata cerrando e iniciando sesión de nuevo. Si es necesario, repite los pasos de arriba.

Solución de problemas

Error pip3

Es posible que veas este error después de instalar la versión 3.7.1 cuando corras pip.

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Esto quiere decir que la versión local de OpenSSL que instalaste no ha sido configurada correctamente antes de configurar Python. Ve el siguiente artículo para ver instrucciones de como instalar OpenSSL localmente.

Entonces, sigue las direcciones de arriba para reinstalar Python3. Si sigues viendo este error, contacta a soporte.

Error libssl cuando instales Python 3

Puedes ver el siguiente error cuando configures Python 3.

checking for X509_VERIFY_PARAM_set1_host in libssl... no

Si corres make verás los siguientes errores:

libssl is too old and does not support X509_VERIFY_PARAM_set1_host()

Could not build the ssl module! Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().

Agregar la siguiente línea cuando instales la versión personalizada de OpenSSL a tu .bash_profile resuelve esto.

export LDFLAGS="-L/home/username/openssl/lib -Wl,-rpath,/home/username/openssl/lib"

Si estás usando Django

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.