0Pricing
Python Academy · Leçon

Packages et __init__.py

Organisez vos modules en packages avec une structure de répertoires adaptée.

Packages et __init__.py est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Qu’est-ce qu’un paquet ?

Un paquet est un répertoire qui contient un fichier __init__.py et un ou plusieurs modules. Python considère tout répertoire de ce type comme un paquet depuis lequel vous pouvez effectuer des importations.

mypackage/
    __init__.py
    utils.py
    math_helpers.py

Le fichier __init__.py

__init__.py est exécuté lorsque le paquet est importé. Il peut être vide ou exposer certains noms aux appelants.

# mypackage/__init__.py
from .utils import helper
from .math_helpers import add

Importer depuis un paquet

Utilisez la notation avec un point pour importer des sous-modules ou des noms définis dans __init__.py.

import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))

Sous-paquets

Les paquets peuvent être imbriqués : un sous-répertoire contenant son propre fichier __init__.py devient un sous-paquet.

mypackage/
    __init__.py
    network/
        __init__.py
        http.py

Importations relatives

À l’intérieur d’un paquet, utilisez des importations relatives avec un point initial pour faire référence aux modules voisins sans coder en dur le nom du paquet.

# mypackage/network/http.py
from ..utils import helper   # two levels up

Importations absolues et relatives

Les importations absolues sont sans ambiguïté et sont à privilégier. Les importations relatives sont utiles dans les grands paquets pour éviter les noms trop longs.

# Absolute
from mypackage.utils import helper

# Relative (inside mypackage)
from .utils import helper

__all__ dans __init__.py

Définissez __all__ pour contrôler ce que from package import * exporte.

# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import add

Paquets d’espace de noms (PEP 420)

Python 3.3 et les versions ultérieures prennent en charge les paquets d’espace de noms, c’est-à-dire des répertoires sans __init__.py. Ils sont utiles pour répartir un paquet entre plusieurs répertoires.

# No __init__.py needed
# Just have the directory and import normally
import myns.module

Initialisation de __init__ du paquet

Utilisez __init__.py pour définir des constantes au niveau du paquet, configurer la journalisation ou charger à la demande des sous-modules volumineux.

# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'

Distribuer des paquets

Ajoutez un fichier pyproject.toml ou setup.py pour rendre votre paquet installable avec pip.

# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"

# Install locally
# pip install -e .

Inspecter les attributs d’un paquet

Utilisez __file__, __path__ et __name__ pour examiner les métadonnées du paquet lors de l’exécution.

import mypackage
print(mypackage.__file__)   # path to __init__.py
print(mypackage.__path__)   # list of directory paths
print(mypackage.__name__)   # 'mypackage'

Vérification rapide

Quel fichier transforme un répertoire en paquet Python ?

Récapitulatif

Les paquets organisent les modules en répertoires à l’aide de __init__.py. Utilisez les importations absolues pour plus de clarté, les importations relatives à l’intérieur d’un paquet et __all__ pour contrôler les interfaces de programmation publiques.

Questions Fréquemment Posées

La leçon « Packages et __init__.py » est-elle gratuite ?

Oui — le texte complet de « Packages et __init__.py » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Packages et __init__.py » ?

Organisez vos modules en packages avec une structure de répertoires adaptée. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Packages et __init__.py » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Créer et importer des modules
  2. La bibliothèque standard Python
  3. Packages et __init__.py
  4. Installer des packages avec pip
← Retour à Python Academy