【问题标题】:What is causing this Python exception?是什么导致了这个 Python 异常?
【发布时间】:2009-10-25 03:24:01
【问题描述】:

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

Exception AttributeError: "'module' object has no attribute 'GetName'" in 'garbage collection' 被忽略 致命的 Python 错误:垃圾收集期间出现意外异常

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

【问题讨论】:

    标签: python exception attributes


    【解决方案1】:

    从文档到 Py_Finalize():

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-07
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      相关资源
      最近更新 更多