导致此Python异常的原因是什么?

时间:2009-10-25 03:24:01

标签: python exception attributes

我有一个使用Python加载某些脚本的C ++应用程序。它调用脚本中的一些函数,一切正常,直到app退出并调用Py_Finalize。然后它显示以下内容:(GetName是其中一个脚本中的函数)

Exception AttributeError:“'module'对象在'garbage collection'中没有属性'GetName'”被忽略 致命的Python错误:垃圾收集期间的意外异常

然后应用程序崩溃了。 我在Windows上使用Python 3.1。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:4)

从文档到Py_Finalize():

  

错误和警告:破坏   模块中的模块和对象完成   随机顺序;这可能会导致   析构函数(__del__()方法)来   当他们依赖其他物体时失败   (甚至功能)或模块。   动态加载的扩展模块   由Python加载不会卸载。   分配的少量内存   Python解释器可能不是   释放(如果你发现泄漏,请   报告)。记忆被捆绑在一起   对象之间的引用不是   释放。一些内存分配   扩展模块可能无法释放。   某些扩展可能无法正常工作   如果他们的初始化程序是   被叫不止一次;这可能发生   如果应用程序调用   Py_Initialize()和Py_Finalize()更多   不止一次。

__del__很可能包含对<somemodule>.GetName()的调用,但该模块在调用__del__时已被销毁。