119 votes

Compiler (mais ne pas exécuter) un script Python

Duplicata possible :
Comment vérifier la syntaxe d'un script Python sans l'exécuter ?

Comment compiler un script Python sans l'exécuter ? Je veux juste vérifier que le script ne contient pas d'erreurs de syntaxe. J'espérais un simple commutateur de ligne de commande, mais je n'ai rien vu dans la section python --help . J'aimerais avoir une réponse pour Python 2 et Python 3.

0 votes

@sukhbir : Vous avez raison, mais je viens de réaliser la réponse, et elle n'est pas donnée dans ce fil.

0 votes

@asmeurer : Oui c'est le cas, la réponse que vous avez postée est dans cette question.

2 votes

La compilation et le contrôle syntaxique sont deux choses différentes, vraiment. Vous voulez faire un contrôle syntaxique, la réponse est dans l'autre fil. Vous demandez à comment le compiler, ce qui est une question différente, vous devriez vraiment changer de sujet.

400voto

Mark Johnson Points 4060
python -m py_compile script.py

1 votes

Merci. c'est tout simplement génial ! et beaucoup plus facile à retenir que la version de @Greg Hewgills ;)

7 votes

Cela devrait être la réponse acceptée.

0 votes

Exactement ce que j'espérais - merci

54voto

yurymik Points 992

py_compile - Compile les fichiers sources Python

import py_compile
py_compile.compile('my_script.py')

7 votes

Avant d'utiliser cette approche, jetez un coup d'œil à la réponse très votée de Mark Johnson qui permet une exécution en ligne de commande sans python supplémentaire.

17voto

pafcu Points 1708

Vous pouvez utiliser pylint pour trouver des erreurs de syntaxe ainsi que des erreurs plus subtiles, comme l'accès à des variables non définies dans une branche conditionnelle rarement utilisée.

9voto

Greg Hewgill Points 356191

Une façon de procéder est de faire quelque chose comme ceci (pour test.py ) :

python -c "__import__('compiler').parse(open('test.py').read())"

Cela fonctionne pour Python 2.x.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X