2016-11-27 82 views
1

我与许多modulesimported,如运行大型script.py的Python - 跟踪模块执行

from module import * 
当我运行它

,我打印了一些令人失望的结果[u'Brewer and Shipley']在进口时,我无法追溯到其method并停止执行。

有什么我可以用来追踪和制止这一点?

+1

在短期内没有帮助,但将来不要这样做:'从模块导入*'。这总是一个坏主意,除了可能在一次性代码中。要在短期内进行调试,请使用导入编写新脚本:运行,注释导入行,再次运行。重复,直到找到罪魁祸首。 – FMc

+0

@FMc,谢谢,指出。 –

+2

您也可以将此代码添加到脚本的顶部:'import sys; sys.stdout = None'。当导入的代码尝试打印时,它会炸毁堆栈跟踪,您可以检查。 – FMc

回答

0

,吹入找出谁自爆是@FMc很好的建议, 这里是另一个伎俩我用

import X print 'X imported' import Y print 'Y imported' import Z print 'Z imported'

这也将帮助你缩小模块有问题。 :)

您可以通过打印中间点进行二分搜索来优化这一点,但我想这是过度engg。