Erreur Python : ModuleNotFoundError
NSI Première
Définition
La `ModuleNotFoundError` signifie « erreur : module introuvable ». Python l'affiche quand une instruction `import` demande un module ou une bibliothèque qu'il n'arrive pas à localiser. Le message exact est de la forme `ModuleNotFoundError: No module named 'nom_du_module'`. Les deux causes typiques sont : le module n'est pas installé sur la machine, ou son nom est mal orthographié dans le `import`.
Exemple corrigé
Énoncé
Voici un code qui déclenche cette erreur :
```python
import maptlotlib.pyplot as plt
notes = [12, 15, 9, 18, 11]
plt.plot(notes)
plt.show()
```
À l'exécution, Python s'arrête immédiatement et affiche :
```
ModuleNotFoundError: No module named 'maptlotlib'
```
Solution
Ici, la bibliothèque s'appelle `matplotlib`, mais elle a été écrite `maptlotlib` (les lettres « p » et « t » sont inversées). Python cherche un module portant ce nom exact, ne le trouve pas, et lève l'erreur. Attention : le nom du module manquant entre guillemets est un indice très utile, lisez-le attentivement.
Code corrigé :
```python
import matplotlib.pyplot as plt
notes = [12, 15, 9, 18, 11]
plt.plot(notes)
plt.show()
```
Si le module est bien orthographié mais qu'il n'est pas installé, il faut l'installer depuis un terminal avec `pip install matplotlib`.
Le bon réflexe : lisez le nom entre guillemets dans le message, vérifiez d'abord l'orthographe du `import`, puis seulement ensuite installez le module s'il manque vraiment.
Erreurs classiques
- Confondre `ModuleNotFoundError` (le module entier est introuvable) avec `ImportError` (le module existe mais l'élément précis demandé, par exemple `from math import racine`, n'existe pas dans ce module).
- Croire qu'un module fonctionnant chez un camarade ou sur Capytale fonctionnera partout : une bibliothèque installée sur une machine ne l'est pas forcément sur une autre.
- Taper `pip install` à l'intérieur du script Python : la commande `pip` s'utilise dans le terminal, pas dans le code.