Python-py_compile没有输出

时间:2018-12-10 05:18:05

标签: python python-3.x compilation

我正在尝试检查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”。

1 个答案:

答案 0 :(得分:1)

独立文件中的字符串aegsedrg本身(或任何其他非关键字字符串)不是语法错误。它可以是程序其他地方定义的标识符。 py_compile不执行编译的文件,也无法捕获运行时错误(如NameError)。

尝试在文件中写出语法上不正确的内容,例如相同的字符串后跟问号:

py_compile.compile("test.py")
  File "test.py", line 1
    aegsedrg ?
             ^
SyntaxError: invalid syntax