Enthought Mayavi 动画空白显示
我一直在尝试运行以下的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模块的导入上吗?网站上的示例是这样开始的:
from enthought.mayavi import mlab
而我用的是:
from mayavi import mlab
这个'enthought.mayavi'的导入方式对我来说不管用。我使用的Mayavi是通过pip安装的。
我该怎么做才能解决这个问题呢?我使用的是Mac OSX 10.8.2。提前谢谢你。
2 个回答
0
在Windows 7 64位系统上使用Canopy时,我遇到了类似的问题。它只显示了最后一帧,没有动画效果。我通过把pylab的后端从qt改成wx来解决了这个问题。
2
这个演示在我的电脑上运行得很好(刚升级到OS 10.8.2)。
不过,首先要回答你关于导入的问题。大约一年半前,我们对软件包进行了重构,去掉了导入时的enthought名称。因此,导入mayavi的mlab的标准方式从
from enthought.mayavi import mlab
变成了
from mayavi import mlab
这个设置是为了确保之前的方式仍然可以使用,但我们在示例代码中尝试将导入改成第二种方式。所以,我们可以比较确定这不是导入语句的问题。
你在Mayavi中运行过什么吗?试试这个:
from mayavi import mlab
mlab.test_plot3d()
另外,你的mayavi版本是什么?你使用的是哪个EPD(32位还是64位)?在终端中运行以下命令的结果是什么?
$ echo $ETS_TOOLKIT