编译(但不要运行)Python脚本

asm*_*rer 98 python syntax-checking

可能重复:
如何在不执行的情况下检查Python脚本的语法?

如何在不运行的情况下编译Python脚本?我只是想检查脚本的语法错误.我希望有一个简单的命令行开关,但我没有看到任何内容python --help.我想要Python 2和Python 3的答案.

Mar*_*son 358

python -m py_compile script.py
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案. (5认同)

yur*_*mik 47

py_compile - 编译Python源文件

import py_compile
py_compile.compile('my_script.py')
Run Code Online (Sandbox Code Playgroud)

  • 在使用这种方法之前,请看一下马克·约翰逊(Mark Johnson)的高票答,使之成为命令行执行程序,而无需其他python。 (4认同)

paf*_*fcu 13

您可以使用pylint查找语法错误以及更微妙的错误,例如在一些很少使用的条件分支中访问未定义的变量.


Gre*_*ill 7

一种方法是做这样的事情(for test.py):

python -c "__import__('compiler').parse(open('test.py').read())"
Run Code Online (Sandbox Code Playgroud)

这适用于Python 2.x.