Accueil·Messages d’erreur

python · Python

Le message

SyntaxError: invalid syntax

Ce que cela veut dire

L'analyseur n'a pas pu former une instruction avec ce qu'il a trouvé là, et la cause se situe le plus souvent à la ligne précédant celle indiquée. Une parenthèse ou un guillemet non fermé, deux-points manquants, ou le print "x" de Python 2 sont les causes classiques : parenthèse ouverte, l'analyseur continue plusieurs lignes avant d'abandonner. python -m py_compile app.py vérifie la syntaxe sans rien exécuter, et depuis la 3.10 les messages sont bien plus précis, donc monter de version est déjà un diagnostic.

Le correctif

python -m py_compile 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 « SyntaxError: invalid syntax » ?

L'analyseur n'a pas pu former une instruction avec ce qu'il a trouvé là, et la cause se situe le plus souvent à la ligne précédant celle indiquée. Une parenthèse ou un guillemet non fermé, deux-points manquants, ou le print "x" de Python 2 sont les causes classiques : parenthèse ouverte, l'analyseur continue plusieurs lignes avant d'abandonner. python -m py_compile app.py vérifie la syntaxe sans rien exécuter, et depuis la 3.10 les messages sont bien plus précis, donc monter de version est déjà un diagnostic.

Q. Comment le corriger ?

python -m py_compile 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 3 mots.

Erreurs voisines