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.

Toutes les notions