我一直在尝试运行以下python代码(来自Enthought的网站)来测试Enthought的Mayavi模块的动画功能。
from mayavi import mlab
import numpy
n_mer, n_long = 6, 11
pi = numpy.pi
dphi = pi/1000.0
phi = numpy.arange(0.0, 2*pi + 0.5*dphi, dphi, 'd')
mu = phi*n_mer
x = numpy.cos(mu)*(1+numpy.cos(n_long*mu/n_mer)*0.5)
y = numpy.sin(mu)*(1+numpy.cos(n_long*mu/n_mer)*0.5)
z = numpy.sin(n_long*mu/n_mer)*0.5
# View it.
l = mlab.plot3d(x, y, z, numpy.sin(mu), tube_radius=0.025, colormap='Spectral')
# Now animate the data.
ms = l.mlab_source
for i in range(10):
x = numpy.cos(mu)*(1+numpy.cos(n_long*mu/n_mer +
numpy.pi*(i+1)/5.)*0.5)
scalars = numpy.sin(mu + numpy.pi*(i+1)/5.)
ms.set(x=x, scalars=scalars)
然而,在执行时,没有任何反应。它运行没有错误,但只有TVTK场景窗口弹出空白 - 没有图像,没有动画。问题可能出在Mayavi模块导入中吗?网站上的示例以: 来自enthought.mayavi import mlab 然而,我有: 来自mayavi import mlab 'enthought.mayavi'导入字符串对我不起作用。我正在使用的Mayavi是一个点子装置 我该怎么做才能解决这个问题?我正在使用Mac OSX 10.8.2。提前谢谢。
答案 0 :(得分:2)
此演示适用于我的机器(刚刚升级到OS 10.8.2)。
但首先,要回答关于导入的问题。大约一年半前的某个时间,我们重构了这些包以从进口中删除了所谓的名称。因此,导入mayavi的mlab的标准方法从
改变from enthought.mayavi import mlab
到
from mayavi import mlab
设置的设计使前者仍然有效,但我们试图将示例代码中的导入重构为第二种模式。因此,我们可以非常肯定这不是import语句的问题。
你有没有在Mayavi运行的东西了吗?试试这个:
from mayavi import mlab
mlab.test_plot3d()
此外,mayavi的版本是什么,EPD你有(32或64位),以及以下结果在终端中是什么?
$ echo $ETS_TOOLKIT
答案 1 :(得分:0)
在Win 7 64上使用Canopy我遇到了类似的问题。只显示最后一帧,没有动画。我通过将pylab后端更改为wx而不是qt来修复它。