Un module est un fichier .py unique ; un package est un répertoire de modules. Les imports vous permettent d'utiliser du code d'autres modules, organisant un programme en pièces réutilisables.
Modules et importation
(): a + b
PI =
Un module est un fichier .py unique ; un package est un répertoire de modules. Les imports vous permettent d'utiliser du code d'autres modules, organisant un programme en pièces réutilisables.
(): a + b
PI =
# main.py — different ways to import
import math_utils # import the whole module
math_utils.add(2, 3) # access via the module name
from math_utils import add, PI # import specific names
add(2, 3) # use directly
from math_utils import add as plus # import with an alias
import numpy as np # common aliasing convention
mypackage/
__init__.py ← marks it as a package (can be empty)
module_a.py
subpackage/
__init__.py
module_b.py
from mypackage.module_a import something
from mypackage.subpackage.module_b import other
Le fichier __init__.py marque un répertoire comme un package (et peut exécuter du code d'initialisation du package ou définir ce que from package import * expose).
if __name__ == "__main__"def main():
print("running as a script")
if __name__ == "__main__": # True only when run directly, not when imported
main()
Ceci permet à un fichier d'agir à la fois comme un module importable et un script exécutable — le code sous cette condition s'exécute uniquement quand le fichier est exécuté directement (python file.py), pas quand il est importé. Un idiome Python quasi universel.
import sys
sys.path # the list of directories Python searches for imports
# includes: the current directory, installed packages (site-packages), stdlib
import os, json, datetime # standard library — "batteries included"
import requests # third-party — installed via pip from PyPI
Les modules et les packages sont la façon dont vous organisez le code Python en unités réutilisables et maintenables plutôt qu'en un seul fichier géant — fondamental pour tout projet non trivial.
Comprendre les styles d'import, la structure des packages (__init__.py), l'idiome if __name__ == "__main__" (comportement dual script/module), et la façon dont Python trouve les modules (sys.path) est essentiel pour structurer les projets, réutiliser le code, et utiliser la vaste bibliothèque standard et l'écosystème PyPI.
Les erreurs d'import et la confusion de structure sont des obstacles courants au début que cette connaissance résout.