
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. (Ojo, antes de enable hay dos guiones)
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 (ojo, antes de version hay dos guiones)

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
Buenas tardes Santi,
Soy nueva en este sector de Linux, Rasbian, Python.
Gracías a tú explicación clara y concisa he podido instalar la versión 3.8.10 en la Raspberrypi, pero hay una parte que no consigo. Es la parte (Cambiar la referencia de Python3 a la nueva versión).
Cuando pongo el comando «sudo nano /.bashrc, se me habre como un editor, pero vacío. Y no sé como cambiar la versión en el sistema de Raspbian. He buscasdo información por internet pero no he encontrado nada que me haga conseguir el cambio de versión.
A ver si me puedes otra forma de hacerlo.
Lo cierto es que no lo hago en un Mac, sino en una Raspberrypi 4 (No sé sí aquí se tiene que hacer de otra forma).
Quedo a la espera de tus comentarios.
Muchas gracias por tú atención y un saludo,
Laura.
Me gustaMe gusta
Hola Laura, buenos días,
te sale el documento en blanco porque estás poniendo mal la ruta, no es como la escribes, sino
sudo nano ~/.bashrc
Si te fijas verás como justo antes de la barra hay un carácter que recuerda al que aparece en la parte superior de la Ñ , es importante que lo informes o no estarás apuntando al fichero correcto.
Pruébalo y ya me dices.
Salu2
Me gustaMe gusta
Hola. Cuando intento instalar las dependecias me aparece un texto que pone esto:
pi@raspberrypi:~ $ 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
E: No se pudo abrir el fichero de bloqueo «/var/lib/dpkg/lock-frontend» – open (13: Permiso denegado)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
Por supuesto que acabo de empezar y no tengo ni idea, Estoy muy perdido.
Gracias de antemano.
Un saludo
Me gustaMe gusta
Hola Eric, tranquilo este tipo de errores nos ha pasado a todos. Antes del apto-get pon sudo, es decir sudo apto-get Install … Te está dando el error porque estás intentando hacerlo desde una cuenta de usuario que no es el root.
Me gustaMe gusta
Buenas! He intentado actualizar el python siguiendo tu guia y al poner python3 –version,
me sale esto en la terminal:
-bash: ’python3.9′ : orden no encontrada
Me gustaMe gusta
Hola, el error se produce porque version ha de ir precedido de dos ‘-‘ , es decir es ‘–version’ . He añadido una nota en el tutoríal por si a otro usuario le ocurre lo mismo. El texto en el tutoríal es correcto, es posible que el navegador esté haciendo algún tipo de autocorrección.
Me gustaMe gusta
Tienes toda la razón, de hecho así lo tengo publicado aunque por algún motivo WordPress lo muestra de manera diferente en el lector. Voy a ver como puedo corregirlo. Gracias por el comentario.
Me gustaMe gusta
Hola. Primero felicitarte por tu blog.
He seguido los pasos, modificando el tuto para la versión 3.10.11 y cuando pongo
python –version me da Python 2.7.16
Y si pongo python3 –version me da como resultado Python 3.10.11
¿Tengo ahora dos versiones de python? ¿Puedo usar las dos según el script que ejecute o como se trabaja ahora? La idea era actualizar la 2.7 a la 3.10
Como voy a trabajar con scripts en python 3, ¿cómo dejo la 3.10 por defecto en Raspian? Gracias.
Me gustaMe gusta
Hola Jorge, gracias por tu comentario y disculpa por el retraso. He ido liado estas últimas semanas.
Efectivamente es como dices, bienvenido al mundo unix/linux, y particularmente al de python, hay dos versiones (llegó a haber 3) desarrolladas en paralelo y no completamente compatibles entre ellas, y de ellas se considera que la ‘por defecto’ es la 2 (me imagino que para mantener mayor compatibilidad con el software ya instalado) y después tienes la 3 para todo lo demás.
Te recomiendo que si tienes que hacer algún desarrollo nuevo o incluso actualización uses ya la versión 3, y si, para ejecutar dichos programas tendrás que poner python3 en lugar de python para ejecutarlos.
Salu2
Santi
Me gustaMe gusta