我无法在Spyder IDE中运行/使用Mayavi库.我已经描述了下面的问题.任何帮助都将非常有用.(非常感谢你提前.)
重现问题的步骤:
from numpy import sin, cos, mgrid
import mayavi.mlab as mmlab
def f(x,y):
return sin(x + y) + sin(2*x - y) + cos(3*x + 4*y)
x,y = mgrid[-7.:7.05:0.01, -5.:5.05:0.05]
z = f(x,y)
s = mmlab.contour_surf(x,y,z)
mmlab.show()
Run Code Online (Sandbox Code Playgroud)
预期输出和错误:
预期输出:带有数字的Mayavi数字窗口.我所看到的是:在控制台窗口中出现以下值错误(我包括完整的消息序列以便显式):
--------------------------错误信息的开头------------------
Traceback (most recent call last):
File "C:\PROGRAMSANDEXPERIMENTS\PYTHON\MayaviScripts\Learning\testMayavi.py", line 2, in <module>
import mayavi.mlab as mmlab
File "C:\Python27\lib\site-packages\mayavi\mlab.py", line 27, in <module>
from mayavi.tools.camera import view, roll, yaw, pitch, move
File "C:\Python27\lib\site-packages\mayavi\tools\camera.py", line 25, …Run Code Online (Sandbox Code Playgroud) 以前我一直在使用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(窗口)中
我实际上对TVTK更感兴趣,所以我尝试了一些来自网站画廊的mayavi演示http://docs.enthought.com/mayavi/mayavi/auto/examples.html 少数我尝试过的 - 一个工作,这是它们显示VTK(?)窗口/场景,我可以与VTK窗口进行交互.一切都很好,直到我打开设置/对话窗口,然后没有对话窗口"按钮"工作,我必须强制退出.这是我在plot3D演示中打开"Setting"按钮时的最后一行错误:
简单的演示:文件"/Users/michael/Library/Enthought/Canopy_64bit/System/lib/python2.7/site-packages/wx/_core.py",第9162行,在DestroyChildren中返回核心 .Window_DestroyChildren(*args,**kwargs)wx._core.PyAssertionError:~wxWindowBase()中的C++断言"GetEventHandler()== this"在/BUILD/wxPython-src-2.9.2.4/src/common/wincmn.cpp(468)失败:任何推送事件必须删除处理程序
我甚至试过了
ipython --gui = wx
(如页面上所示)但在这种情况下它会崩溃,没有窗口.
根据控制台上的错误消息,它们似乎都与wx相关.我的理解是,Canopy环境是"自足的",但是我的旧环境可能会有些冲突吗?我怎么会测试这个?
有没有一种方法,环境变量,mayavi2可以使用Qt而不是wx?我不在任何本地python脚本中使用wx,所以除非在Canopy中需要它,否则我很乐意禁用,如果这是一个选项.
有任何想法吗?