Accueil·Messages d’erreur

python · Python

Le message

TabError: inconsistent use of tabs and spaces in indentation

Ce que cela veut dire

Tabulations et espaces sont mélangés dans un même bloc, donc Python ne peut pas décider quelle ligne est plus profonde. Cela arrive en collant depuis un éditeur qui insère des tabulations, ou quand deux personnes modifient le même fichier avec des réglages différents ; à l'écran les lignes semblent identiques, vous ne le trouverez pas à l'œil. python -m tabnanny app.py affiche les numéros de ligne fautifs, et le reste consiste à convertir tout le fichier en quatre espaces dans l'éditeur.

Le correctif

python -m tabnanny app.py
Émis par
python
Python
18

Une trace Python coupe la réponse en deux : la dernière ligne dit ce qui a échoué, les cadres au-dessus disent où — ne lire que la dernière ligne donne le nom et fait perdre l'endroit ; et pour les erreurs de valeur absente comme NoneType et KeyError, la cause siège presque toujours dans un cadre au-dessus de celui qui a planté.

Lire un message d’erreur

  • Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
  • S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
  • Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
  • La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
  • Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.

Questions fréquentes

Q. Que veut dire « TabError: inconsistent use of tabs and spaces in indentation » ?

Tabulations et espaces sont mélangés dans un même bloc, donc Python ne peut pas décider quelle ligne est plus profonde. Cela arrive en collant depuis un éditeur qui insère des tabulations, ou quand deux personnes modifient le même fichier avec des réglages différents ; à l'écran les lignes semblent identiques, vous ne le trouverez pas à l'œil. python -m tabnanny app.py affiche les numéros de ligne fautifs, et le reste consiste à convertir tout le fichier en quatre espaces dans l'éditeur.

Q. Comment le corriger ?

python -m tabnanny app.py — avant de le lancer, vérifiez plus haut ce que cette commande jette.

Q. Quel outil émet cela ?

python. Cela relève de Python, et le message compte 9 mots.

Erreurs voisines