我只是从命令行运行脚本而遇到一种奇怪的情况:当我遇到错误时,通常给出的回溯包含没有意义的代码。回溯中的每一行都应该是方法调用,但有时它们不是。此外,回溯中引用的行不对应于给定的错误。发生了什么?举个例子,这是一个简单的错误,numpy
没有被导入,但回溯没有意义,并且引用了不相关的代码行:
Traceback (most recent call last):
File "bin/train_global_model.py", line 549, in <module>
if __name__ == '__main__':
File "bin/train_global_model.py", line 236, in main
def main():
File "bin/train_global_model.py", line 407, in do_training
tb_writer=train_writer,
File "bin/train_global_model.py", line 200, in run_iteration
print(accuracy)
NameError: global name 'np' is not defined
特别注意引用的代码行。
是否在某处执行python缓存代码,但在跟踪异常时引用实际文件?运行Python 2.7.13。
答案 0 :(得分:2)
Python在运行程序时保存行号而不是实际的源代码。对于回溯,它会加载源代码并显示相应的数字行。当源更改时,在程序运行时,您会发现线路不同步。