我正在努力学习MayaVi,但在开头的数字上卡住了。
在mlab中显示数字只会导致segfault。我画的似乎并不重要,所以我认为问题在于展示的行为,而不是我试图展示的对象。例如:
import numpy as np
from mayavi import mlab
x = y = np.arange(-5, 5, 1)
s = np.meshgrid(x, y)
mlab.surf(s)
导致错误:
Segmentation fault (core dumped)
我在Linux上使用Python 2.7.3,EPD 7.3-1(64位)。
编辑:如果我试图显示一个图像,我实际上会遇到一个不同的错误,这是我的目标之一。
import numpy as np
from mayavi import mlab
from PIL import Image
img = Image.open('milkyway.png')
mlab.imshow(img)
中的结果
Fatal error in __driConfigOptions line 108393789, column 108392770: parsing finished.
Abort (core dumped)
编辑2:好吧,打开数字肯定是个问题,因为如果我只是测试:
from mayavi import mlab
mlab.figure()
我得到了最初的错误(一个segfault)。
我没有使用Enthought,但我遇到了类似的segfault错误,并在这里找到了帮助:
https://github.com/enthought/mayavi/issues/450
他们说这是Qt4(VTK使用)和Qt5(Mayavi使用)之间的兼容性问题,并建议切换到wx。为此,请在终端中运行以下命令:
export ETS_TOOLKIT=wx
然后,您应该能够从同一个终端运行Enthough或您的Python。
如果这样做有效,您还可以考虑将上述行添加到~/.profile.d中,以便在启动终端时自动执行导出。我不知道这怎么会自动包含在Enthought中,对不起。
我希望这会有所帮助,马亚维一旦开始运行就很好!