基本上 cProfile 模块在我运行时会跳过一些函数,而普通的配置文件模块会产生此错误。
The debugged program raised the exception unhandled AssertionError
"('Bad call', ('objects/controller/StageController.py', 9, '__init__'), <frame object at 0x9bbc104>, <frame object at 0x9bb438c>, <frame object at 0x9bd0554>, <frame object at 0x9bcf2f4>)"
File: /usr/lib/python2.6/profile.py, Line: 301
我做了所有的搜索,但我找不到任何东西。我如何使它们正常工作?
@yk4ever
StageController.py 类像这样开始:
class StageControl(ObjectControl):
def __init__(self, canvas_name):
ObjectControl.__init__(self, canvas_name,"stage_object")
self.model = StageModel()
self.variables()
self.make_stage()
self.overrides()
上面的“Bad call”错误似乎不喜欢这个类
最佳答案
我找到了问题所在。 Psyco
我的“StageControl”继承的“ObjectControl”类有一个简单的:
import psyco
psyco.full()
在类内部导致错误,因此只有继承“ObjectControl”的类中的方法导致分析器失败。我在某处读到只在必要的地方导入 psyco 是个好主意,结果那是个坏主意。
我已经使用了一段时间的 psyco 直到我遇到 cython ,但由于某种原因, psyco 导入语句留下了足够长的时间来使分析器工作。我自从抛弃了 psyco。
这个故事的寓意是:坚持使用 cython ,在一天结束时,没有什么比 C 更好的了。
关于python cProfile 和 profile 模型跳过函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1688412/