我如何检查Python脚本的语法而不执行它?

我曾经使用perl -c programfile检查Perl程序的语法,然后退出而不执行它。 有一个相当的方法来做这个Python脚本?

你可以通过编译来检查语法:

 python -m py_compile script.py 

你可以使用这些工具:

  • PyChecker
  • Pyflakes
  • pylint的
 import sys filename = sys.argv[1] source = open(filename, 'r').read() + '\n' compile(source, filename, 'exec') 

将其保存为checker.py并运行python checker.py yourpyfile.py

也许有用的在线检查器PEP8: http ://pep8online.com/

由于某种原因(我是一个py新手…)-m电话不起作用…

所以这里是一个bash包装函数…

 # --------------------------------------------------------- # check the python synax for all the *.py files under the # <<product_version_dir/sfw/python # --------------------------------------------------------- doCheckPythonSyntax(){ doLog "DEBUG START doCheckPythonSyntax" test -z "$sleep_interval" || sleep "$sleep_interval" cd $product_version_dir/sfw/python # python3 -m compileall "$product_version_dir/sfw/python" # foreach *.py file ... while read -rf ; do \ py_name_ext=$(basename $f) py_name=${py_name_ext%.*} doLog "python3 -c \"import $py_name\"" # doLog "python3 -m py_compile $f" python3 -c "import $py_name" # python3 -m py_compile "$f" test $! -ne 0 && sleep 5 done < <(find "$product_version_dir/sfw/python" -type f -name "*.py") doLog "DEBUG STOP doCheckPythonSyntax" } # eof func doCheckPythonSyntax