En informatique, on se retrouve très souvent à réutiliser du code : il est donc très important de trouver une manière facile de le réutiliser (pas de copier / coller de fichier en fichier) !
Il existe de nombreuses manières de faire cela, mais en Python on utilise des "Packages" (ou paquets en français) : on va rassembler par thématique des bouts de code (des "fonctions"), et les distribuer de manière simple. On ne va pas s'intéresser à comment créer un de ces packages, mais plutôt comment les utiliser !
Une des grandes forces de Python, c'est qu'il existe de très très nombreux packages, séparés en deux catégories : ceux de la "librairie standard", présent sur toutes les installations de Python, et ceux de pip
, qu'il faudra installer manuellement si on souhaite les utiliser sur un ordinateur.
Voici quelques exemples de packages de la librairie standard :
random
: pour trouver des nombres aléatoires, que ce soit des int, des float ... Permet aussi de choisir un élément au hasard dans un tableau, ou de mélanger un tableau, etc ! (la documentation complète du module est disponible ici, en anglais uniquement)json
: permet de lire et d'écrire du JSON, un format standard d'échange d'information sur le web. Très utile quand on va vouloir dialoguer avec un site externe, ou si l'on souhaite facilement sauvegarder certaines informations sur son disque dur. Documentation du module (en français)os
: permet d'interagir avec l'Operating System (système d'exploitation, c'est à dire windows, mac ou linux) : vérifier si des fichiers existent, copier un fichier, le renommer, créer des dossiers ... Documentation du module (en français)glob
: Permet de trouver facilement des fichiers similaire (par exemple, tous les fichiers .jpg dans un dossier). On peut le faire aussi avec os, mais glob nous évite d'avoir à faire des algorithmes complexes (ce n'est pas évident de chercher dans un dossier, et ces sous dossiers !). Documentation du module (en français)Pour les modules de pip
, il en existe bien plus encore, voici quelques exemples de ceux que nous allons utiliser :
pillow
: pour manipuler des images (plus d'infos sur cette page du site)birdy
: pour accéder à l'API de twitter (plus d'infos sur cette page du site)flask
: pour créer des webapp ! (plus d'infos sur cette page du site)opencv
: pour utiliser la caméra et prendre des photos (plus d'infos sur cette page du site)requests
: pour faire des requêtes HTTP, et interroger des API web, ou faire du scraping de données (plus d'infos sur cette page du site)pip
!Si le package est dans la librairie standard, rien à faire ici !
Par contre, s'il est sur pip, alors il faut l'installer. C'est déjà fait pour les modules communs sur les ordinateurs MagicMakers ; néanmoins si tu veux utiliser un package qui n'est pas présent (ou faire l'installation sur ton ordinateur personnel), c'est très simple ! Commence par ouvrir une console (si tu ne sais plus comment faire, tu peux te référer à cette page), et tape la commande suivante :
pip install monpaquet
C'est tout, tu peux désormais l'utiliser !
Certains paquets ont un nom différent sur pip et dans python. Par exemple, pour installer opencv il faut installer "python-opencv
", et on utilisera "cv2
" dans python ! Réfère toi à la documentation des paquets si jamais tu as un soucis là dessus.
Pour utiliser un package, il va falloir demander explicitement à python de l'importer dans notre script. Python n'importe pas automatiquement tous les packages de l'ordinateur, car il peut y en avoir beaucoup (et ça peut donc prendre du temps !).
On va utiliser le mot clé import, qui peut s'utiliser de plusieurs manières :
Les utilisations suivantes d'import
peuvent être source de bug : si tu importe de deux paquets une fonction avec le même nom, tu vas écraser une des deux ! utilise les avec parcimonie, et privilégie toujours l'import
"classique", vu juste au dessus !
Si jamais tu as une erreur de type ModuleNotFoundError: No module named 'flask'
Vérifie que tu as bien installé le package, et que tu n'as pas faire d'erreur dans le nom du package (par exemple, écrit "flaske" à la place de "flask")