L'instruction `import` de Python : Modules, espaces de noms et bonnes pratiques
En Python, import est comment vous amenez du code d'un module dans un autre. Ce n'est pas « main import » — ce terme n'existe pas en Python. Voici comment ça marche réellement, avec les motifs que vous utiliserez quotidiennement.
Syntaxe d'import de base
import nom_module
Cela charge nom_module et le lie à une variable dans votre espace de noms actuel. Vous accédez à son contenu avec la notation pointée :
import math
math.sqrt(16) # 4.0
math.pi # 3.14159...
Motifs d'import courants
1. Importer le module (Recommandé par défaut)
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1,2,3]})
arr = np.array([1,2,3])
Avantages : Explicite, lisible, évite conflits de noms, montre l'origine.
2. Importer des noms spécifiques
from math import sqrt, pi
sqrt(16) # 4.0 — pas de préfixe nécessaire
pi # 3.14159...
Utilisez quand : Vous utilisez quelques noms intensivement. Évitez : from module import * (pollution espace de noms).
3. Importer avec alias
import matplotlib.pyplot as plt
import seaborn as sns
Conventions standards (pd, np, plt, sns, tf, torch) rendent le code instantanément lisible.
4. Imports conditionnels / paresseux
# Importez les dépendances lourdes seulement quand nécessaire
def analyser_donnees():
import pandas as pd # Import local — démarrage plus rapide si inutilisé
return pd.read_csv('donnees.csv')
Comment import fonctionne sous le capot
- Vérifie
sys.modules— si déjà chargé, retourne module en cache - Trouve le module via
sys.path(répertoire courant, PYTHONPATH, site-packages, stdlib) - Exécute le code du module — lance les instructions de niveau supérieur (def, class, assignations)
- Crée l'objet module — espace de noms pour les globales du module
- Met en cache dans
sys.modules - Lie le nom dans l'espace de noms de l'importateur (selon instruction import)
Chemin de recherche des modules (sys.path)
import sys
sys.path # ['', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload',
# '/home/user/.local/lib/python3.11/site-packages', ...]
''= répertoire du script courant (ou CWD si interactif)- Installer paquets :
pip install paquet→ site-packages - Environnements virtuels isolent
site-packages
Paquets et sous-modules
import paquet.sous_module
from paquet import sous_module
from paquet.sous_module import fonction
Répertoire avec __init__.py = paquet. __init__.py peut exposer sous-modules :
# paquet/__init__.py
from .sous_module import fonction_publique
__all__ = ['fonction_publique']
Pièges courants et solutions
| Problème | Cause | Solution |
|---|---|---|
ModuleNotFoundError | Non installé / mauvais env / faute de frappe | pip install, vérifiez venv, vérifiez orthographe |
ImportError: cannot import name | Import circulaire / nom pas dans module | Restructurez, déplacez imports dans fonctions |
| Conflit de nom | from x import * ou fichier local masque stdlib | Ne nommez pas fichiers math.py, random.py ; utilisez imports explicites |
| Erreur import relatif | Exécution module comme script | Lancez comme python -m paquet.module ou utilisez imports absolus |
Bonnes pratiques
- Bibliothèque standard d'abord, puis tiers, puis local — chaque groupe alphabétisé
- Un import par ligne (PEP 8)
- Utilisez
import moduleplutôt quefrom module import * - Alias : Utilisez standards communauté (pd, np, plt, tf, torch)
- Évitez manipulation runtime du path — utilisez empaquetage propre (
pyproject.toml,pip install -e .) - Vérification types :
from __future__ import annotations+ gardesTYPE_CHECKING
Exemple : Bloc d'imports propre
# Bibliothèque standard
import json
import os
from pathlib import Path
from typing import List, Optional
# Tiers
import numpy as np
import pandas as pd
import requests
# Local
from monprojet.config import settings
from monprojet.models import User
from monprojet.utils import logger
Le système d'import de Python est puissant, explicite et prévisible — une fois que vous comprenez le modèle d'espace de noms. La règle d'or : rendez évident d'où vient chaque nom. Votre futur vous (et vos collègues) vous remercieront.
Devises & change
- Comparaison dollar US - real brésilien
- Comment acheter sa monnaie de voyage en ligne
- Fonctions clés du marché monétaire du Nigeria
- Compagnies par actions et commerce outre-mer
- Frais CRV Californie et EBT : Ce qu'il faut savoir
- Délai livraison courrier : Tulsa, Oklahoma vers Rising Sun, Maryland
- Comment devenir membre London Metal Exchange (LME) : guide étape par étape
- Comment Babu a repéré erreur calcul commis
- Transférer argent Iran → Malaisie : Naviguer les sanctions
