0

起初我的运行系统:

我将存储库中的 Windows 8 Pro 和 Mayavi 4.3 与 Python 2.7.4 中的 wxPython 2.9.4.0 一起使用,但 EPD 包中的 mayavi 4.2.1 也有同样的问题......

当我尝试将 mayavi 嵌入到笔记本面板中时,我遇到了一些 UI 问题。即使在 mayavi 的演示文件中,我也得到了 mayavi 生成的外部帧的相同奇怪行为。

因此,使用设置按钮打开设置窗口。场景也会对我使用设置更改的参数做出反应。但是在点击 OK 或 Chanel 后,窗口并没有关闭。并且 python 会返回一些错误消息。当我通过实施 mlab.show_pipeline() 命令使用管道时,出现了类似的行为。

这种行为也可以在enthought 网页的示例中找到。

尝试在 enthougth 示例的设置框架中单击“确定”后,您可以在此处看到我的错误消息:

C:\my_directory\>python wx_embedding.py
C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\wx\toolkit.py:35: wxPyDeprecationWarning: Using deprecated class PySimpleApp.
 _app = wx.PySimpleApp()

wx_embedding.py:63: wxPyDeprecationWarning: Using deprecated class PySimpleApp.
app = wx.PySimpleApp()

Traceback (most recent call last): File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\wx\ui_live.py", line 360, in _on_ok
self.close( wx.ID_OK )

File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\wx\ui_live.py", line 320, in close

ui.finish()
File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\ui.py", line 264, in finish

self.reset( destroy = True )
File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\ui.py", line 304, in reset
editor.dispose()
File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\wx\instance_editor.py", line 208, in dispose
self._ui.dispose()

File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\ui.py", line 237, in dispose
self.finish()
File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\ui.py", line 264, in finish
self.reset( destroy = True )

File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\ui.py", line 318, in reset
toolkit().destroy_children( self.control )
File "C:\Python27\lib\site-packages\enthougth_development_mayavi_git\traitsui\traitsui\wx\toolkit.py", line 474, in destroy_children
control.DestroyChildren()

File "C:\Python27\lib\site-packages\wx-2.9.4-msw\wx\_core.py", line 9203, in DestroyChildren
return _core_.Window_DestroyChildren(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "GetEventHandler() == this" failed at .    .\..\src\common\wincmn.cpp(468) in wxWindowBase::~wxWindowBase(): any pushed event handlers must have been removed

提前致谢

4

2 回答 2

1

Mayvi 与 wx 2.9 不兼容。

更多信息: https: //support.enthought.com/entries/22601196-wxPython

请使用 enpkg 恢复到 EPD 附带的 wx 2.8。

于 2013-04-22T14:56:04.127 回答
1

至少可以通过与此 PR 相关的更改来解决此特定异常:https ://github.com/enthought/traitsui/pull/108 。我还不知道 Mayavi 和堆栈的其余部分,但这种变化至少会让 traitsui 与 wxPython 2.9 一起工作。

于 2013-04-24T19:12:16.273 回答