Créer des modules et packages Python réutilisables
📦 Créer des modules et packages Python réutilisables
Section titled “📦 Créer des modules et packages Python réutilisables”🧠 Théorie : pourquoi créer des modules et packages ?
Section titled “🧠 Théorie : pourquoi créer des modules et packages ?”- Modules : fichiers
.pycontenant du code réutilisable (fonctions, classes, variables). - Packages : dossiers contenant plusieurs modules, avec un fichier
__init__.pypour les regrouper.
📜 Historique et contexte
Section titled “📜 Historique et contexte”- Python a introduit les modules dès ses premières versions pour organiser le code.
- Les packages sont apparus pour structurer des projets plus grands.
- Aujourd’hui, la distribution se fait via PyPI et l’utilisation de fichiers comme
pyproject.toml.
⚖️ Différence entre module et package
Section titled “⚖️ Différence entre module et package”| Aspect | Module | Package |
|---|---|---|
| Définition | Fichier .py | Dossier contenant plusieurs modules |
| Exemple | math.py | mypackage/ avec __init__.py |
| Import | import math | import mypackage.module |
🛠️ Créer un module simple
Section titled “🛠️ Créer un module simple”- Crée un fichier
utilitaires.py:
def saluer(nom): return f"Bonjour, {nom} !"
def addition(a, b): return a + b- Utilise-le dans un autre script :
import utilitaires
print(utilitaires.saluer("Riyad"))print(utilitaires.addition(3, 5))📂 Créer un package
Section titled “📂 Créer un package”- Structure du projet :
mon_package/│── __init__.py│── calculs.py│── affichage.py- Contenu des fichiers :
def addition(a, b): return a + b
# affichage.pydef saluer(nom): print(f"Bonjour, {nom} !")- Importer le package :
import mon_package.calculs as calcimport mon_package.affichage as aff
print(calc.addition(2, 3))aff.saluer("Riyad")🚀 Rendre le package réutilisable
Section titled “🚀 Rendre le package réutilisable”Ajouter un fichier pyproject.toml
Section titled “Ajouter un fichier pyproject.toml”[project]name = "mon_package"version = "0.1.0"description = "Un package de démonstration"authors = [{ name = "Riyad", email = "riyad@example.com" }]dependencies = []Installer localement
Section titled “Installer localement”pip install .Publier sur PyPI
Section titled “Publier sur PyPI”pip install build twinepython -m buildtwine upload dist/*📋 Évaluation des connaissances
Section titled “📋 Évaluation des connaissances”À quoi sert cette évaluation ?
Section titled “À quoi sert cette évaluation ?”Cette évaluation rapide (3 minutes) va vous permettre de vérifier votre compréhension du sujet traité dans ce guide.
Instructions :
- 🕒 Temps limité : 3 minutes
- 🎯 Seuil de réussite : 80%
- 💡 Les réponses seront expliquées à la fin
À vous de jouer ! 🚀
📝 Exercices pratiques
Section titled “📝 Exercices pratiques”Exercice 1 : Créer un module
Énoncé :
Créez un fichier math_utils.py avec une fonction carre(n) qui retourne le carré d’un nombre.
Testez-le dans un script séparé.
Solution :
def carre(n): return n * n
# test.pyimport math_utilsprint(math_utils.carre(5))Résultat attendu :
25Exercice 2 : Créer un package
Énoncé :
Créez un package outils avec deux modules :
texte.py→ fonctioncompter_mots(phrase)nombre.py→ fonctionest_pair(n)
Solution :
def compter_mots(phrase): return len(phrase.split())
# outils/nombre.pydef est_pair(n): return n % 2 == 0
# test.pyimport outils.texte as txtimport outils.nombre as nb
print(txt.compter_mots("Bonjour Riyad"))print(nb.est_pair(4))Résultat attendu :
2TrueExercice 3 : Distribution
Énoncé :
Ajoutez un fichier pyproject.toml à votre package et installez-le localement avec pip install ..
Solution :
[project]name = "outils"version = "0.1.0"description = "Package d'exemple"authors = [{ name = "Riyad", email = "riyad@example.com" }]dependencies = []pip install .Résultat attendu :
Le package est installé et utilisable avec import outils.
✅ Conclusion
Section titled “✅ Conclusion”- Modules = fichiers
.pyréutilisables. - Packages = dossiers regroupant plusieurs modules.
- Réutilisabilité = meilleure organisation, partage et maintenance.
- Distribution = via PyPI avec
pyproject.toml.
👉 En clair : organise ton code en modules et packages pour le rendre réutilisable et partageable.