Tabla de contenido
En ocasiones podemos encontrarnos con un sistema antiguo que no podemos cambiar por alguna razón. Al ser antiguo en este sistema no podemos instalar desde paquete Python 3.7, para esquivar este problema debemos compilar e instalar Python 3.7.
Dependencias
Por ejemplo si tenemos un sistema CentOS 7, debemos instalar las siguientes dependencias:
yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel
Por otro lado si estamos utilizando Ubuntu o Debian, las dependencias serían estas:
apt install build-essential libssl-dev libcrypto++-dev libbz2-dev libffi-dev zlib1g zlib1g-dev
Descarga del código fuente
Después de instalar las dependencias, debemos descargar el paquete de código fuente de la versión de Python a compilar:
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
Compilando el código fuente
Tras descargar el paquete, descomprimimos el paquete y nos metemos dentro del directorio:
tar xzf Python-3.7.9.tgz cd Python-3.7.9
Ya dentro del directorio, compilamos la versión:
./configure --enable-optimizations
Cuando se finalice la compilación con éxito, debemos instalar los binarios generados. Haciéndolo con «altinstall» realizamos la instalación de un Python secundario sin sobrescribir una versión existente de Python:
make altinstall
Un paso mas a realizar es la instalación de pip para poder instalar mas paquetes, para ello ejecutaremos lo siguiente:
wget https://bootstrap.pypa.io/get-pip.py python3.7 get-pip.py
También es buena idea instalar una versión de virtualenv, paquete para poder generar entornos virtuales:
pip3.7 install virtualenv
Finalmente para mantener los binarios por defecto de las otras versiones de Python:
mv /usr/local/bin/pip /usr/local/bin/pip.new mv /usr/local/bin/virtualenv /usr/local/bin/virtualenv-3.7
Para resumir todo esto en un script, a continuación dejo el siguiente:
#/bin/bash wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz tar xzf Python-3.7.9.tgz cd Python-3.7.9 ./configure --enable-optimizations make altinstall wget https://bootstrap.pypa.io/get-pip.py python3.7 get-pip.py pip3.7 install virtualenv mv /usr/local/bin/pip /usr/local/bin/pip.new mv /usr/local/bin/virtualenv /usr/local/bin/virtualenv-3.7