Python追踪损坏:代码与执行的内容不同步?

时间:2017-06-04 06:34:53

标签: python python-2.7 pyc

我只是从命令行运行脚本而遇到一种奇怪的情况:当我遇到错误时,通常给出的回溯包含没有意义的代码。回溯中的每一行都应该是方法调用,但有时它们不是。此外,回溯中引用的行不对应于给定的错误。发生了什么?举个例子,这是一个简单的错误,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。

1 个答案:

答案 0 :(得分:2)

Python在运行程序时保存行号而不是实际的源代码。对于回溯,它会加载源代码并显示相应的数字行。当源更改时,在程序运行时,您会发现线路不同步。