我曾经使用perl -c programfile来检查perl程序的语法,然后退出而不执行它。对于Python脚本,是否有等效的方法来做到这一点?
当前回答
出于某种原因(我是一个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 -r f ; 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
其他回答
Pyflakes会做你想做的,它只是检查语法。从文档中可以看出:
Pyflakes做出了一个简单的承诺:它永远不会抱怨风格,并且会非常非常努力地避免出现误报。 Pyflakes也比Pylint或Pychecker快。这主要是因为Pyflakes只单独检查每个文件的语法树。
安装和使用:
$ pip install pyflakes
$ pyflakes yourPyFile.py
你可以通过编译来检查语法:
python -m py_compile script.py
import sys
filename = sys.argv[1]
source = open(filename, 'r').read() + '\n'
compile(source, filename, 'exec')
保存为checker.py并运行python checker.py yourpyfile.py。
你可以使用这些工具:
PyChecker Pyflakes Pylint
也许有用的在线检查PEP8: http://pep8online.com/
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if