以前我一直在使用由 Mac 端口维护的 python 环境。我有一些使用 PyQT、VTK、matplotlib 等的基本脚本。我已经能够使用 Paraview,但对我的使用来说似乎有点重,所以我想尝试 MayaVi2(和 TVTK)。
我下载并尝试手动安装,但事实证明很麻烦。所以我想我会咬紧牙关尝试 Canopy(学术许可)。基于Mac OS X 上的这个 VTK/Mayavi,这表明在 Qt、VTK 和 MayaVI 的世界中一切都很好,我安装了 64 位 Canopy。
我无法让 mayavi2 在 Canopy 环境中工作。它运行,但控制台出现很多错误,如果我调用任何对话框/设置框,“按钮”无法正常工作。这是我尝试启动 mayavi2 时的第一个错误(几个屏幕满屏):
(Canopy 64bit)scratch_pad 501 $mayavi2 Traceback(最近一次调用最后):文件“/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site -packages/pyface/ui/wx/splash_screen.py",第 121 行,在 _on_paint dc = wx.PaintDC(window)
我实际上对 TVTK 更感兴趣,所以我尝试了网站画廊http://docs.enthought.com/mayavi/mayavi/auto/examples.html中 的一些mayavi 演示他们显示一个VTK(?)窗口/场景,我可以与VTK窗口交互。一切都很好,直到我打开一个设置/对话窗口,然后对话窗口“按钮”都不起作用,我不得不强制退出。这是我在plot3D 演示中打开“设置”按钮时出现的最后一行错误:
简单演示:文件“/Users/michael/Library/Enthought/Canopy_64bit/System/lib/python2.7/site-packages/wx/_core.py”,第 9162 行,在 DestroyChildren 返回核心.Window_DestroyChildren(*args, ** kwargs) wx._core.PyAssertionError: C++ 断言 "GetEventHandler() == this" 在 ~wxWindowBase() 中的 /BUILD/wxPython-src-2.9.2.4/src/common/wincmn.cpp(468) 失败:任何推送的事件处理程序必须已被删除
我什至试过
ipython --gui=wx
(如页面上所建议)但在这种情况下它会崩溃,没有窗口。
根据控制台上的错误消息,它们似乎都与 wx 相关。我的理解是 Canopy 环境是“自给自足的”,但我的旧环境可能会以某种方式发生冲突吗?我什至怎么测试这个?
有没有一种方法,环境变量,mayavi2 可以使用 Qt 而不是 wx?我不在我的任何本地 python 脚本中使用 wx,所以除非 Canopy 需要它,否则我很乐意禁用它,如果这是一个选项。
有任何想法吗?