MayaVi: mlab segfaults на дисплея

Опитвам се да науча 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)

Използвам Python 2.7.3, EPD 7.3-1 (64-bit) на Linux.

РЕДАКТИРАНЕ: Всъщност получавам различна грешка, ако се опитам да покажа изображение, което е една от целите ми.

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)

EDIT2: Добре, определено е проблем при отварянето на фигурите, защото ако просто тествам:

from mayavi import mlab
mlab.figure()

Получавам първоначалната грешка (segfault).


person user2569840    schedule 15.07.2013    source източник
comment
Получих това с помощта на Enthought Canopy 1.1.1.1452, с Mayavi 4.3.0.   -  person aaren    schedule 29.10.2013


Отговори (1)


Не използвам Enthought, но получих подобни грешки на segfault и намерих помощ тук:

https://github.com/enthought/mayavi/issues/450

Казват, че това е проблем със съвместимостта между Qt4 (използван от VTK) и Qt5 (използван от Mayavi) и препоръчват преминаване към wx. За да направите това, моля, изпълнете следната команда в терминала:

export ETS_TOOLKIT=wx

След това трябва да можете да стартирате Enthough или вашия Python от същия терминал.

Ако това работи, можете също така да добавите горния ред към вашия ~/.profile.d, така че експортирането да се изпълнява автоматично при стартиране на терминала. Как това може автоматично да бъде включено в Enthought, не знам, съжалявам.

Надявам се, че това помага, Mayavi е доста добър, щом започне да работи!

person David    schedule 01.06.2017