【问题标题】:Enthought Mayavi Animation Blank DisplayEnthought Mayavi 动画空白显示
【发布时间】:2013-01-25 07:41:22
【问题描述】:

我一直在尝试运行以下 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。提前致谢。

【问题讨论】:

    标签: python pip enthought mayavi


    【解决方案1】:

    这个演示可以在我的机器上运行(刚刚升级到 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
    

    【讨论】:

    • 感谢蒂姆,我尝试了测试代码: from mayavi import mlab mlab.test_plot3d() 它会生成一个空白 TVTK 窗口,鼠标指针指示正在加载某些内容,但什么也没做。
    • 我的 mayavi 版本是 4.2.0,通过 pip 安装。 $ETS_TOOLKIT 变量为空。
    • 您使用的是什么 GUI 工具包?如果是wx,是什么版本?你是如何建立VTK的?您使用的是 32 位还是 64 位 Python?当您使用基于 Cocoa 的 GUI 工具包(wx 2.9.x,现在大多数 Qt 构建或任何 64 位)和基于 Carbon 的 VTK 构建时,我已经看到过类似的情况。您需要使用全碳或全可可。
    • 你可以像这样检查你的VTK安装:> otool -L /<path to VTK libraries>/libvtkRendering.dylib | grep Carbon
    • 如果您能指导我获取一些信息,我将不胜感激。在 OSX 上当我从 IPython 运行示例时,它运行良好,但只有当我尝试在 Spyder 中使用它时,它才会显示沙漏并且什么都不做(挂起),我想将所有内容都保留在 Spyder 中。
    【解决方案2】:

    在 Win 7 64 上使用 Canopy 我遇到了类似的问题。只有它显示最后一帧,没有动画。我通过将 pylab 后端更改为 wx 而不是 qt 来修复它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      相关资源
      最近更新 更多