Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Python
  3. Flot de développement
Extrait - Python Libérez le potentiel de votre Raspberry Pi
Extraits du livre
Python Libérez le potentiel de votre Raspberry Pi
2 avis
Revenir à la page d'achat du livre

Flot de développement

Différentes versions de Raspberry Pi

Dix millions d’exemplaires, c’est le nombre de Raspberry Pi qui ont été vendus depuis le lancement du produit en 2012. À titre de comparaison, c’est équivalent aux ventes de Chromebook, l’ordinateur portable de Google, qui est pourtant le modèle le plus vendu sur le segment de marché des ordinateurs portables.

Le Raspberry Pi, c’est donc une révolution. Une révolution presque silencieuse, car la fondation qui chapeaute le projet n’est pas coutumière des shows, comme l’est la marque à la pomme.

Ceci s’explique par les motivations de la fondation Raspberry. Le volume des ventes n’est pas la motivation première du projet, il n’est qu’une conséquence. Pour bien comprendre ceci, il faut remonter à la genèse du projet et au constat dressé par la fondation et ses fondateurs dans la deuxième partie des années 2000. Le constat réalisé est que les étudiants anglais ont moins d’intérêt pour l’informatique et un niveau moindre, comparativement aux étudiants des années 1990.

Pour rappel, la fin des années 1990 marque un tournant pour l’informatique qui n’est pas encore pour le grand public. Les foyers ne sont pas encore équipés d’ordinateurs personnels (PC). Commodore et Amstrad produisent des ordinateurs qui sont disponibles dans les écoles et dans certains foyers. Ces ordinateurs présentent plusieurs avantages. Tout d’abord, un coût limité qui permet aux écoles de s’équiper d’au moins un exemplaire sans pour autant faire exploser le budget. Ensuite, un système d’exploitation qui se charge à chaque démarrage à partir de disquette, ce qui limite le risque de crash en cas de fausse manœuvre. Enfin, la mise à disposition d’un langage de programmation généralement le Basic ou un langage dérivé. On a donc une vision au plus près du système.

La montée en puissance de Microsoft marque la fin de cette vision « bricoleur », avec les débuts de l’informatique grand public. En effet, Microsoft propose un système d’exploitation qui équipe...

Historique du langage Python et distributions

Python est un langage introduit en 1991 par Guido van Rossum. Parmi d’autres motivations, Guido van Rossum veut créer un langage de script le plus lisible et le plus épuré possible.

Les différents blocs structurant le code (structure conditionnelle, boucles, fonctions…) se différencient à l’aide de niveaux d’indentation.

Outre cette facilité de lecture et donc de compréhension, Python est composé d’une librairie standard qui regroupe un nombre important de fonctionnalités, ce qui permet de programmer rapidement des fonctionnalités sans pour autant avoir besoin de réinventer la roue.

À ces avantages s’ajoute le fait que Python est multiplateforme et nous allons maintenant voir les éléments qui ont fait le succès de ce langage. En effet, Python est, à l’heure de l’écriture de ces pages, le langage dont les fonctionnalités évoluent de manière très intense actuellement, tant au niveau de la librairie standard du langage qu’au niveau du langage lui-même qu’au niveau des packages qui gravitent autour et permettent de dupliquer les possibilités de base du langage.

Cependant, un élément peut empoisonner la vie des débutants. Cet élément, c’est le fait que deux branches...

Extensions : packages et bibliothèques

Python possède un système de gestion de packages un peu à l’image d’Aptitude. Ce système permet d’installer des versions stables et compatibles avec votre propre version installée de Python. 

Les packages sont des bibliothèques qui permettent de répondre à quasiment tous les besoins des utilisateurs :

  • calculs scientifiques

  • calculs parallèles

  • développement web

  • traitement d’images

  • traitement du signal

  • intelligence artificielle

  • etc.

Pour installer un package, il suffit d’exécuter la commande :


pip install <nom_du_package>
 

Et pour désinstaller :


pip uninstall <nom_du_package>
 

Pip est une possibilité pour installer des modules complémentaires, mais ce n’est pas la seule solution. En effet, Aptitude permet également d’installer des packages comme n’importe quel autre package :


sudo apt-get install <nom_du_package>
 

Cette manière de faire trouve ses limites dans le sens où Aptitude va chercher ces packages au sein de la distribution Raspbian. Cependant, le choix de packages via Aptitude est nettement moins élevé que pour pip.

Outils d’édition

La programmation en Python, comme dans d’autres langages, ne nécessite pas d’outils spécifiques pour la création des sources.

Un simple éditeur de texte comme nano peut suffire. Cependant, cette approche a ses limites en termes de productivité.

Il existe plusieurs solutions pour améliorer votre productivité en utilisant les principes d’autocomplétion et de compilation à la volée. De cette manière, vous gagnez en temps de syntaxe et vous avez déjà une validation syntaxique de votre code.

Différents outils vont être passés rapidement en revue ci-après.

Pour ce qui est d’éditeurs avancés qui peuvent être équipés de plug-ins pour améliorer les fonctionnalités de base, citons les très célèbres Emacs et Vim.

À ces deux monstres sacrés de la communauté GNU s’ajoute IDLE, qui est un éditeur de texte basique, spécifiquement orienté Python. Cet outil présente l’avantage d’être préinstallé avec Raspbian. Il possède une fonction intéressante qui permet d’exécuter un script en appuyant sur la touche [F5] de votre clavier.

Outre ces éditeurs, de véritables IDE pour Python existent. Un IDE est un environnement de développement qui...

Outils d’exécution d’un script

Après un survol des solutions disponibles pour éditer des sources Python, nous proposons dans cette section les différents outils pour exécuter les scripts Python.

1. Console

La façon la plus simple pour exécuter un script Python est d’utiliser la console. Sur Raspbian, la console se nomme LXTerminal et vous la trouverez dans la barre des tâches.

Une fois la console exécutée, il faut se placer dans le répertoire où est enregistré le script à exécuter, à l’aide de la commande cd.


Cd <chemin_vers_mon_script>
 

Puis, il faut exécuter le script à l’aide de la commande suivante :


python mon_premier_script.py
 

En cas de problème à l’exécution, un ensemble d’erreurs est retourné. C’est une manière simple de procéder, mais elle est utilisée par les développeurs.

Il existe d’autres solutions dont celle d’utiliser les outils intégrés.

2. Outils intégrés

Les outils intégrés comme PyCharm et Spyder permettent l’exécution directe d’un script au sein de l’environnement sans manipulation de fenêtre supplémentaire.

Ces outils ont bien d’autres fonctionnalités intéressantes. Ils permettent de réaliser une exécution...

Méthode de débogage et outil ipdb

Écrire un script sans faire d’erreurs algorithmiques est une utopie. Tout développeur commet à un moment ou à un autre une erreur qu’il faudra traquer. Pour détecter un bogue, il existe plusieurs méthodes. La plus répandue se résume certainement à décorer le script de fonctions print aux endroits opportuns. Entre chaque exécution, le programmeur bouge ses fonctions print afin de cibler l’origine du bogue. Il apparaît assez logiquement qu’une telle manipulation est fastidieuse et sous-optimale. L’utilisation d’un débogueur rend plus efficace le débogage.

Le débogueur pdb est présent dans la librairie standard de Python. Nous allons plutôt nous intéresser à l’outil ipdb qui offre un support à IPython et d’intéressantes fonctionnalités, entre autres :

  • autocomplétion

  • introspection de variables et classes

  • support des commandes magiques IPython

  • support des couleurs

Cet outil s’installe en utilisant pip :


pip install ipdb
 

Soit le code suivant :


x = [] 
for i in range(10): 
    x.append(i)
 

Pour tracer la valeur de x pendant l’exécution de ce code il suffit d’ajouter la déclaration import ipdb; ipdb.set_trace(). Cela a pour effet de lancer le débogueur :


import...

Écrire un code cohérent et homogène

Python est un langage qui demande une importante d’écriture pour obtenir un code fonctionnel. Un respect de l’indentation du code est une condition nécessaire pour avoir un script qui s’exécute proprement.

La communauté Python produit des documents nommés PEP qui contiennent un ensemble de règles de bonne conduite en termes de syntaxe, de méthodologie, d’usage. Ces documents sont le fruit de débats de la communauté et font consensus. Le PEP 8 est particulièrement intéressant pour le débutant. Ce document contient l’ensemble des recommandations liées à la façon d’écrire le code :

  • disposition du code

  • espace entre les expressions

  • commentaires

  • compatibilité des versions

  • conventions de nommage

  • recommandations de programmation

Il existe différents outils pour vérifier que les règles PEP 8 ont bien été respectées par le développeur. C’est le cas de l’utilitaire Flake8.

Pour l’installer :


python -m pip install flake8
 

Pour vérifier un fichier avec Flake8 :


flake8 <monfichier.py>
 

Pour vérifier un ensemble de fichiers présents dans un dossier :


flake8 <chemin_vers_mon_dossier>
 

Soit le script nommé script_non_pep8.py, dont le code est le suivant :


print(...

Configuration retenue pour l’ouvrage

Un ensemble d’outils a été présenté. Il est temps de choisir une configuration rationnelle pour cet ouvrage.

Le choix comporte forcément une part de parti pris qui est guidée par l’expérience de chacun.

Pour cet ouvrage, nous avons choisi d’utiliser l’éditeur de texte Vim que nous maîtrisons. Cet éditeur est complété par des modules :

  • autocomplétion

  • vérification syntaxique à la volée

  • vérification PEP à la volée

Notre fichier de configuration est disponible ici : https://github.com/clemaitre58/dotfiles/blob/Rpi3/_vimrc

Pour l’exécution des scripts, nous avons fait appel à IPython, car il permet d’accéder aux variables du code et de réaliser un débogage rapide.

Au niveau matériel, le Raspberry Pi 3 B+ est majoritairement utilisé pour tester les différents scripts. Le Raspberry Pi Zero W est également utilisé lors des manipulations ayant trait au GPIO.