Après avoir démarrer le Rpi 0 avec la carte SD et finit la configuration, je peux enfin tester l’environnement de travail.

Premier problème après avoir récupéré sur github les scripts du « Jardin des mots », je me rend compte d’une incompatibilité entre la version de pickle pour python 3.7 (celle fournit sur la distribution Raspbian) et la version de pickle pour python 3.8 (celle que j’ai utilisé pour générer le lexique). L’incompatibilité réside dans le fait que j’ai utilisé la dernière version de compression de pickle introduite dans la version 3.8.

Voici l’article que j’ai suivi : https://installvirtual.com/how-to-install-python-3-8-on-raspberry-pi-raspbian/

Ce n’est pas une installation comme il peut s’en passer sur Windows, dans ce cas, il faut télécharger les sources et les compiler pour Raspbian.

Prérequis

Il faut mettre à jours Raspbian :
sudo apt-get update

Et installer les dépendances nécessaires :

sudo 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 tar wget

Compiler Python 3.8

Téléchargez les sources :
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
Décompressez l’archive :
tar zxf Python-3.8.0.tgz
cd Python-3.8.0

Compilez les sources :

sudo ./configure --enable-optimizations
sudo make -j 4

Installez la version fraichement compilée :

sudo make altinstall

Veuillez laisser les lieux…

Cette étape est facultative, cela permet de récupérer de l’espace disque en effaçant les fichiers dont nous n’avons plus besoin.
cd ..
rm -r Python-3.8.0
rm Python-3.8.0.tar.xz

Faire de Python3.8 la version par défaut

Cette partie diffère de l’article utilisé comme référence.

/usr/bin/python3

Pour mettre en place 2 alternative à l’alias python3, tapez :

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 0
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.8 1

Étant donné que nous avons mis une priorité plus importante pour la version 3.8, cela sera la version utilisée lorsque python3 sera invoqué.

/usr/bin/python

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 0
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
Lorsque python sera invoqué ce sera python3, donc python3.8, qui sera appelé.

pip

Il faut maintenant pointer lsb_release vers version de python 3.8 pour que pip puisse fonctionner.
sudo ln -s /usr/share/pyshared/lsb_release.py /usr/local/lib/python3.8/site-packages/lsb_release.py

Conclusion

Nous voici maintenant en possession d’une carte SD avec python3.8 par défaut que nous pouvons utiliser indifféremment sur Rpi0 et Rpi3B+.

Cet article a 5 commentaires

  1. gherqhgqeh

    Nul, à ne pas faire, cela rend pip innutilisable

    1. angorange-admin

      Merci pour ce retour. Il se trouve qu’il faut rajouter cette ligne que j’ai oubliée. Je mets à jour l’article.
      sudo ln -s /usr/share/pyshared/lsb_release.py /usr/local/lib/python3.8/site-packages/lsb_release.py

  2. Arno

    Bonjour, je viens de faire les opérations, tout est fonctionnel, merci 🙂

  3. Giloris

    Bonsoir,
    J’essaie d’installer la version python 3.8 selon la procédure proposée mais j’ai ces messages qui apparaissent à ce niveau
    quand je saisis ceci dans le terminal rm -r Python-3.8.0

    rm : supprimer ‘Python-3.8.0/python-gdb.py’ qui est protégé en écriture et est du type « fichier » ?

    Que dois-je faire , il y a d’autres fichier en suivant également
    Merci pour votre aide
    Giloris

    1. angorange-admin

      Bonjour Giloris,

      C’est normal, cette commande efface les données qui ne sont plus nécessaires. Vous pouvez sauter cette étape si vous voulez. Mais cela vous permet de ne pas gaspiller de l’espace.

      Dites-moi si vous avez besoin de plus d’information.

Laisser un commentaire