我正在尝试检查python代码中的错误,并且我需要访问错误日志本身(我不能仅检查是否创建了.pyc
文件)。
我当前的流程是我有一个运行python3 -m py_compile test.py
的脚本,其中test.py
是“ aegsedrg”,没有别的(换句话说,无效的python代码)。
运行python3 test.py
时,结果是错误(如预期):
Traceback (most recent call last):
File "test.py", line 1, in <module>
aegsedrg
NameError: name 'aegsedrg' is not defined
但是,python3 -m py_compile test.py
不会(通过stdout或stderr)返回任何错误。
这是在Ubuntu 16.04服务器上,我最近对其进行了升级和更新。我还完全重新安装了Python3。我认为这不是权限问题,test.py
是777。
为什么python3 -m py_compile test.py
什么也不返回?
-编辑-
我也尝试使用以下python脚本来做到这一点:
import py_compile
print("Here")
py_compile.compile("test.py")
print("Here2")
输出为“ Here”,然后为“ Here2”。
答案 0 :(得分:1)
独立文件中的字符串aegsedrg
本身(或任何其他非关键字字符串)不是语法错误。它可以是程序其他地方定义的标识符。 py_compile
不执行编译的文件,也无法捕获运行时错误(如NameError
)。
尝试在文件中写出语法上不正确的内容,例如相同的字符串后跟问号:
py_compile.compile("test.py")
File "test.py", line 1
aegsedrg ?
^
SyntaxError: invalid syntax