Eric Le Codeur
Posted on April 11, 2022
Le cours accéléré Python est gratuit et sera publié ici sur dev.to. Je publierai un nouvel article tous les deux jours environ. Pour ne rien manquer, vous pouvez me suivre sur twitter : Suivez @EricLeCodeur
Modules et Packages
Créer vos propres modules
Jusqu’à présent, nous avons utilisé plusieurs modules déjà inclut dans Python. Maintenant il est temps de créer nos propres modules.
Lorsque nous créons une application Python, nous n’allons pas placer tous notre code dans un seul et unique fichier. Il est possible pour des questions de lisibilité et de ré-utilisabilité de créer nos propres modules.
Qu’est-ce qu’un module Python ?
Python considère comme un module n’importe quel fichier avec l’extension ".py". Voici une structure de fichier qui serait possible d’avoir pour votre application
main.py
utilities.py
L’application comporte deux modules. Le module principal “main.py” et un autre module “utilities.py”
Voici un exemple de leur contenu :
utilities.py
def display_message(message):
print("******************")
print(" " + message)
print("******************\n")
Le fichier contient la fonction display_message() qui permet d'afficher un message
main.py
import utilities
utilities.display_message("Hello World")
Ici l’instruction “import” permet d’inclure et d’utiliser le code du fichier “utilities.py” dans le fichier en cours.
À noter que pour appeler la fonction display_message() il faut utiliser le nom du module soit : utilities.display_message()
Si on exécute main.py on obtient :
******************
Hello World
******************
Syntaxe alternative
Il est possible d’utiliser l’instruction “import” d’une autre façon
main.py
from utilities import display_message
display_message("Hello World")
L’instruction “from” permet d’importer seulement une partie du fichier “utilities.py”. Dans ce cas-ci, seulement la fonction display_message() sera importé.
Le résultat sera le même sauf que l’appel de la fonction ne nécessite plus le nom du module.
Import avec un autre nom de module
Lors de l’import, il est possible de modifier le nom du module
import utilities as utils
utils.display_message("Hello World")
L’instruction “as” permet de modifier le nom qui sera utilisé pour l’appel.
Regrouper plusieurs modules ensemble sous un package
Lorsque l’on construit des applications d’une certaine taille, nous aurons beaucoup de modules. Certains de ces modules pourraient être regroupés ensemble (sous un même dossier) afin de rendre l’application plus logique.
Voici un exemple. Supposons que nous avons une application avec ces modules
math_add.py
math_sub.py
message_info.py
message_log.py
message_error.py
Ici notre application comporte 5 modules. 2 sont relatifs au Math et 3 autres messages.
Il serait donc peut-être plus logique de diviser l’application avec cette structure de dossier :
/math
add.py
sub.py
/message
info.py
log.py
error.py
Ici la structure est plus logique et par conséquent sera donc plus facile à comprendre, à maintenir et à faire évoluer.
Pour utiliser cette structure en Python. Il faut aviser Python que les dossiers /math et /message sont en faite des packages Python.
Un "package" est en faite un simple dossier qui contient des modules.
Pour indiquer à Python qu’un dossier est un package il faut créer un fichier vide nommé __init__.py
/math
__init__.py
add.py
sub.py
/message
__init__.py
info.py
log.py
error.py
Si le fichier __init__.py
est présent dans le dossier, Python va le considérer comme un package.
Utiliser un package dans votre application
Pour faire l’“import” de ces packages dans le code de votre application, vous devez utiliser la syntaxe suivante.
import math.add
Ici Python va rendre disponible le code du fichier “add.py” inclut dans le package “math”
Utiliser des librairies crée par la communauté
Une des forces de Python est son immense communauté.
Vous avez un problème et vous cherchez à le résoudre à l’aide de Python ?
Pourquoi réinventer la roue ? Il y a de forte chance qu’un membre a déjà rencontrer ce problème et encore mieux qu’il a partagé sa solution avec la communauté.
Les packages créés par la communauté sont répertoriés sur le site https://pypi.org/ et peuvent être installés sur votre ordinateur à l’aide de l’application PIP.
Cette application permet d’installer sur votre machine la ou les librairies que vous aurez choisies.
Vérifier l’installation de PIP
À partir de la console, lancer Python avec le module PIP
python -m pip --version
ou
python3 -m pip --version
# pip 22.0.4 from /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pip (python 3.10)
Ici PIP est bel et bien installé. Si vous avez un problème quelconque, revisitez la procédure d’installation de Python au début de ce cours.
Installé et utiliser votre premier package
python -m pip install emoji
ou
python3 -m pip install emoji
Avec cette commande, le package “emoji” est maintenant installé et utilisable.
À noter que certains package sont dépendants de d’autres packages pour fonctionner. PIP va installer le package demandé mais également les autres dépendances nécessaires.
python3 - m pip list
Package Version
---------- -------
emoji 1.7.0
pip 22.0.4
setuptools 58.1.0
La commande PIP list permet d'afficher la liste de tous les packages installés sur votre machine.
PIP a installé la dernière version par défaut
python3 -m pip uninstall emoji
python3 -m pip list
Package Version
---------- -------
pip 22.0.4
setuptools 58.1.0
La commande pip uninstall désinstalle le package “emoji” sur votre machine.
Le package “emoji” permet d’ajouter des emoji au message imprimer dans le terminal.
Voici un exemple d’utilisation du package emoji
import emoji
print(emoji.emojize('Python is :thumbs_up:'))
# Python is 👍
Pour utiliser un package qui vous a installé, il faut faire un import.
À noter que plusieurs packages possèdent une documentation en ligne qui vous informe des fonctions disponibles et comment les utiliser.
À quel endroit sont installés les packages sur votre machine ?
Les packages installés avec PIP sont installés dans un dossier central partagé entre toutes vos applications Python.
Donc une fois qu’un package est installé sur votre machine, il n’est pas nécessaire de le réinstaller si vous en avez besoin pour une autre application.
Problème de version ?
Cette façon de procéder va un jour ou l’autre apporter un problème au niveau des versions. Par exemple votre application 1 va utiliser le packages “emoji” version 1.7 mais votre application 2 a besoin de “emoji” version 1.8
Comment éviter les problèmes de version ?
Pour éviter ce genre de problème, il existe une solution et c’est de créer un “environnement virtuel” pour chacun de vos projets.
Environnement Virtuel
Un environnement virtuel c’est un dossier dans lequel sont placés tous les fichiers nécessaires afin de faire fonctionner votre application.
Par exemple, Python, PIP et les packages de la communauté que vous utilisez dans votre application.
Enfin, cet environnement peut être re-créer sur n’importe quelle machine ou serveur et exécuter votre code avec exactement les bonnes versions de tous !
Qu’est-ce un environnement virtuel ?
Ne vous laissez pas impressionner par ce grand nom. Un environnement virtuel est simplement un dossier qui contient une version x de Python (ex 3.9) et une version x des autres packages nécessaires au bon fonctionnement de votre application.
Chaque application possède son propre environnement virtuel (dossier) afin d’y garder les librairies nécessaires a son bon fonctionnement.
Exemple de création d’un environnement virtuel
Lorsque l'on travaille sur un projet Python, on est amené à travailler avec plusieurs librairies comme FastAPI, Flask ou Django, etc.
Selon la date de création du projet. Il est possible par exemple que la librairie FastAPI ne soit pas exactement au même no de version dans les autres projets.
Comment faire pour permettre à chaque projet d'avoir sa propre version de Python et ses propres versions de librairies ?
Nous allons utiliser les environnements virtuels.
Un environnement virtuel permet d'installer Python et des librairies python dans un dossier/projet sans que cela n'affecte les autres dossiers/projets.
Python met à votre disposition un système qui permet de créer des environnements virtuels.
Une fois l'environnement créé et activé, toutes les librairies installées pourront être utilisées seulement dans l'environnement auquel ils appartiennent.
Comment créer un environnement virtuel
Normalement nous plaçons un environnement virtuel dans le dossier du projet.
Créer et accéder à un dossier pour notre projet
$ mkdir learn-python
$ cd learn-pythob
À partir de ce dossier vous pouvez maintenant créer l'environnement virtuel qui sera attaché au projet
$ python3 -m venv env
Ici on lance python3 avec l'option module venv. env est le nom que l'on donne à notre environnement virtuel.
Une fois l’environnement virtuel créé vous pouvez l'activer :
MacOS / Linux
$ source env/bin/activate
Windows
$ env\\Scripts\\activate.bat
Voilà c'est tout ! Vous avez maintenant un environnement virtuel Python créé pour votre projet. Normalement le terminal vous indiquera que votre environnement est activé en affichant son nom.
À noter que pour désactiver l'environnement virtuel vous devez exécuter
$ deactivate
Conclusion
C'est tout pour aujourd'hui, je publierai un nouvel article tous les deux jours environ. Pour être sûr de ne rien rater vous pouvez me suivre sur twitter : Suivre @EricLeCodeur
Posted on April 11, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.