我一直在尝试运行以下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 导入 mlab
然而,我有:
从 mayavi 导入 mlab
'enthought.mayavi' 导入字符串对我不起作用。我使用的 Mayavi 是 pip 安装。
我应该怎么做才能解决这个问题?我使用的是 Mac OSX 10.8.2。提前致谢。
最佳答案
这个演示可以在我的机器上运行(刚刚升级到操作系统 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
关于python - Enthought Mayavi 动画空白显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14517443/