Les packages Python : structure, importation et bonnes pratiques
Les packages Python
Apprenez à organiser une base de code grandissante avec les packages Python et à importer efficacement vos propres modules ou ceux de tiers.
Vidéo : Les packages Python – Organisez votre code
Qu'est-ce qu'un package ?
Tout comme nous regroupons les fichiers sur disque dans des dossiers pour plus de clarté, Python utilise des packages pour regrouper des modules liés. Un package est simplement un répertoire qui contient un fichier __init__.py — ce fichier indique à Python de traiter le dossier comme un espace de noms.
Lorsqu'un projet s'agrandit, garder des modules similaires ensemble dans un package rend le projet gérable et auto-documenté. Les packages peuvent également contenir des sous-packages, reflétant la façon dont les répertoires peuvent s'imbriquer.
Par exemple, un projet de jeu pourrait avoir cette structure :

Importer des modules depuis un package
Les modules s'importent avec la notation point (.). Pour importer start.py depuis le package Game/Level, utilisez :
import Game.Level.start
Si start.py définit une fonction select_difficulty(), appelez-la avec l'espace de noms complet :
Game.Level.start.select_difficulty(2)
Pour réduire la verbosité, vous pouvez importer le module dans l'espace de noms local :
from Game.Level import start
La fonction select_difficulty devient alors accessible ainsi :
start.select_difficulty(2)
Pour des importations encore plus concises, importez directement la fonction :
from Game.Level.start import select_difficulty
Puis appelez-la simplement :
select_difficulty(2)
Bien que concis, l'importation au niveau fonction peut entraîner des collisions de noms si différents modules exposent des symboles identiquement nommés. L'utilisation du chemin complet du package garde l'espace de noms explicite et plus sûr.
Python résout les importations de packages en recherchant dans les répertoires listés dans sys.path, exactement comme pour les modules classiques.
Python
- Maîtriser les types de données Python : Guide pratique
- Maîtriser les opérateurs Python : Guide complet
- Maîtriser l'instruction pass en Python : Guide pratique
- Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
- Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
- Maîtriser les itérateurs Python : fonctionnement et création des vôtres
- Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
- Maîtriser Python datetime : guide pratique pour les dates, heures et fuseaux horaires
- Maîtriser time.sleep() en Python : Bonnes pratiques, multithreading et exemples réels