2013-07-15 2 views
4

Я пытаюсь изучить MayaVi, но застреваю при открытии фигур.MayaVi: mlab segfaults на дисплее

Отображение цифр в 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-разрядная версия) на Linux.

EDIT: Я получаю другую ошибку, если попытаюсь отобразить изображение, которое является одной из моих целей.

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() 

Я получаю начальную ошибку (а выдаёт ошибку сегментации).

+0

У меня есть это использование Enthought Canopy 1.1.1.1452, с Mayavi 4.3.0. – aaren

ответ

0

Я не использую Enthought, но я получил подобные ошибки Segfault и нашел помощь здесь:

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

Они говорят, что это проблема совместимости между Qt4 (используется ВТК) и Qt5 (используется MayaVi) и рекомендуем переключиться на wx. Для этого, пожалуйста, выполните следующую команду в терминале:

export ETS_TOOLKIT=wx 

Тогда вы должны быть в состоянии запустить Enthough или ваш Python из того же терминала.

Если это работает, вы можете также рассмотреть возможность добавления вышеуказанной строки в файл ~/.profile.d, чтобы экспорт автоматически выполнялся при запуске терминала. Как это может автоматически включаться в Enthought, я не знаю, извините.

Я надеюсь, что это поможет, Майяви очень приятен, когда он работает!

Смежные вопросы