我已经读过,当我们第一次执行python脚本并将它存储在_pycache目录中时,python会生成.pyc文件,但如果python脚本在某行有错误会发生什么。它会生成字节码吗?
答案 0 :(得分:0)
Python永远不会删除缓存(字节码)文件,所以如果它被写入,它就会保留。它在编译后编写(如果没有SyntaxError
s)并且在执行之前 - 甚至在发现之前,例如,第一行上的import foo
指的是不存在的模块。
所以你几乎可以说除非引发SyntaxError
,否则会写入该文件,除了其他事情可以引发:第一个模块中的import
,exec
/ { {1}} / eval
或明确的compile
。如果需要,可以通过计算回溯帧来查看(第一个)模块是否曾经开始执行, 可以通过编程方式区分这些。