Instalar la última versión de Python en Raspbian

Python 3

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

 

Santi

Esta entrada fue publicada en Raspberry Pi y etiquetada , , , , . Guarda el enlace permanente.

9 respuestas a Instalar la última versión de Python en Raspbian

  1. lauraouc dijo:

    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 gusta

    • elalbir28 dijo:

      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 gusta

  2. Eric dijo:

    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 gusta

    • elalbir28 dijo:

      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 gusta

  3. JB dijo:

    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 gusta

    • elalbir28 dijo:

      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 gusta

  4. elalbir28 dijo:

    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 gusta

  5. jorgequatro dijo:

    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 gusta

    • elalbir28 dijo:

      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 gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.