Instalar la última versión de Python 3 en Raspbian

Este pasado fin de semana intenté ejecutar en mi Raspberry Pi un programa de Python 3 que había escrito en mi Mac, y recibí un mensaje de error (Syntax error).

Al revisar el error me dí cuenta de que la versión de Python 3 que tenía instalada en mi Raspberry no era lo suficientemente nueva, pese a actualizar el software de mi Raspberry semanalmente.

Ello se debe a que por defecto Raspbian lleva cierto retraso incorporando las últimas versiones de Python. En mi caso quería ejecutar Python 3.9 y la versión instalada era la 3.5.3.

Como el procedimiento requiere varios pasos, y creo que no está suficientemente documentado, menos aun en español, he decidido crear este post que además me servirá como documento de consulta para futuras ocasiones.

Verificamos la versión instalada

python3 –version

Actualizar Raspbian:

sudo apt-get update
sudo apt-get upgrade

Instalar dependencias:

apt-get install -y build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev

Descargar y extraer la última versión de Python 3 (en este ejemplo 3.9.0)
El paso make -j -l 4 tardará varios minutos. Se informa 4 para compilar más rápido usando los 4 núcleos. En una Raspberry 1 pondremos 1 (solo tiene un núcleo).

wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar -xf Python-3.9.0.tgz


Instalar y configurar Python 3

cd Python-3.9.0
./configure –enable-optimizations
make -j -l 4
sudo make altinstall

Cambiar la referencia de Python3 a la nueva versión

sudo nano ~/.bashrc

se abrirá el editor de texto, bastará con ir a la última línea e insertar

alias python3=’python3.9′

y salir guardando los cambios pulsando CRTL y X .

Para que los cambios surtan efecto necesitaremos reiniciar el sistema con

reboot

Comprobamos la versión instalada y activa

python3 –version

Si os atascáis en cualquier paso o no os funciona correctamente no dudéis en contactarme.

Espero que os haya sido de ayuda.

Salu2

 

Santi