我正在開發一個工具,它必須接受一個文件作爲輸入,檢查語法錯誤,編譯它並在其後執行某些操作。如何在運行之前檢查python代碼的語法錯誤
例如, 我有一個文件run.py:
a=5
b=c
print b
這應該清楚地表明一個語法錯誤,在編譯,因爲「C」是沒有定義
我試圖用
try:
py_compile.compile("source_program/run.py", doraise=True)
print "Compiled"
except:
print "Error while compiling"
我得到輸出「編譯」而不是「編譯時出錯」
如果我修改run.py文件:
a=5
b=c/ #Instead of b=c
print b
然後我得到的輸出「錯誤在編譯」
什麼我沒有拿到在第一種情況下的錯誤消息?
'b = c'沒有定義'c'不是一個SyntaxError,而是一個NameError – joaquin