使用wx版本3.0.3导入PyDeadObjectError

时间:2015-12-10 12:42:47

标签: wxpython

使用wxPython 3.0.3我无法导入PyDeadObjectError。 我相信当我安装3.0时,这不是问题。 我收到“无法导入名称”错误。

BsMBP:tests bem$ python
Python 2.7.10 (default, Oct 23 2015, 18:05:06) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
>>> import wx
>>> wx.version()
'3.0.3.dev1836+f764b32 osx-cocoa (phoenix)'
>>> 
>>> import PyDeadObjectError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named PyDeadObjectError
>>> 
>>> from wx._core import PyDeadObjectError
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name PyDeadObjectError
>>> 
>>> exit()

如何解决此错误?

1 个答案:

答案 0 :(得分:2)

正如迁移指南(http://wxpython.org/Phoenix/docs/html/MigrationGuide.html#wx-pydeadobjecterror-runtimeerror)中所提到的,不再需要生成该异常的丑陋黑客,因此异常类已被删除。现在,如果您尝试访问已删除的C ++对象的代理对象,则会引发RuntimeError。或者您可以在if语句中测试该窗口,如果您希望它已被删除并且完全避免获得异常。