基本上 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/

10-13 07:01