我正在嘗試檢查 python 代碼中的錯誤,我需要訪問錯誤日志本身(我不能只檢查.pyc文件是否已創(chuàng)建)。我目前的流程是我有一個要運行的腳本python3 -m py_compile test.py,其中test.py“aegsedrg”在哪里,沒有別的(換句話說,無效的python代碼)。當(dāng) python3 test.py運行時,其結(jié)果是錯誤的(如預(yù)期):Traceback (most recent call last): File "test.py", line 1, in <module> aegsedrgNameError: name 'aegsedrg' is not defined但是,python3 -m py_compile test.py返回(通過 stdout 或 stderr)沒有錯誤。這是在 Ubuntu 16.04 服務(wù)器上,我最近對其進行了升級和更新。我也完全重新安裝了 Python 3。我認為這不是權(quán)限問題,test.py是 777。為什么python3 -m py_compile test.py什么都不返回?-編輯-我還嘗試使用以下 python 腳本來執(zhí)行此操作:import py_compileprint("Here")py_compile.compile("test.py")print("Here2")輸出是“Here”,然后是“Here2”。
1 回答

四季花海
TA貢獻1811條經(jīng)驗 獲得超5個贊
aegsedrg獨立文件中的字符串本身(或任何其他非關(guān)鍵字字符串)不是語法錯誤。它可以是程序中其他地方定義的標(biāo)識符。py_compile不執(zhí)行已編譯的文件,也無法捕獲運行時錯誤(如NameError)。
嘗試在您的文件中編寫一些語法錯誤的內(nèi)容,例如相同的字符串后跟一個問號:
py_compile.compile("test.py")
File "test.py", line 1
aegsedrg ?
^
SyntaxError: invalid syntax
添加回答
舉報
0/150
提交
取消