2013-05-03 4 views
6

Раньше я использовал среду python, поддерживаемую портами Mac. У меня были некоторые базовые сценарии с использованием PyQT, VTK, matplotlib и т. Д. Я смог использовать Paraview, но выглядел немного тяжелым для своих применений, поэтому, хотя я бы попробовал MayaVi2 (и TVTK).Как заставить MayaVi2 по умолчанию использовать Qt вместо wx?

Я загрузил и попытался установить вручную, но это оказалось хлопотным. Поэтому я подумал, что укушу пулю и попробую Canopy (академическая лицензия). Основываясь на этом VTK/Mayavi on Mac OS X, который говорит, что все хорошо в мире Qt, VTK и MayaVI, я установил 64-битный Canopy.

У меня возникли проблемы с получением mayavi2 для работы в среде Canopy. Он запускается, но на консоли появляется много ошибок, если я вызываю любое диалоговое окно/«окно», «кнопки» работают неправильно. Вот первая ошибка (из нескольких экранных Фуллс), когда я пытаюсь запустить mayavi2:

(Canopy 64bit) scratch_pad 501 $mayavi2 Traceback (most recent call last): File "/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/pyface/ui/wx/splash_screen.py", line 121, in _on_paint dc = wx.PaintDC(window)

Я на самом деле больше заинтересованы в TVTK, поэтому я попробовал некоторые из MayaVi демки с сайта галереи http://docs.enthought.com/mayavi/mayavi/auto/examples.html Немногочисленные Я пробовал работать - работал, то есть отображает окно/сцену VTK (?), Я могу взаимодействовать с окном VTK. Все хорошо, пока я не открою окно настроек/диалога, и тогда ни одна из кнопок диалога «кнопка» не работает, и я должен заставить выйти. Вот последняя строка ошибки, когда я открываю кнопку «Настройка» в plot3D demo:

simple demo: File "/Users/michael/Library/Enthought/Canopy_64bit/System/lib/python2.7/site-packages/wx/_core.py", line 9162, in DestroyChildren return core.Window_DestroyChildren(*args, **kwargs) wx._core.PyAssertionError: C++ assertion "GetEventHandler() == this" failed at /BUILD/wxPython-src-2.9.2.4/src/common/wincmn.cpp(468) in ~wxWindowBase(): any pushed event handlers must have been removed

Я даже попытался

ipython --gui=wx

(как это было предложено на странице), но в этом случае он выходит из строя, нет окна.

На основании сообщений об ошибках на консоли все они выглядят как wx. Насколько я понимаю, среда Canopy является «самодостаточной», но может ли моя старая среда каким-то образом противоречить друг другу? Как я мог бы это проверить?

Есть ли способ, переменная окружения, что mayavi2 может использовать Qt вместо wx? Я не использую wx ни в одном из моих локальных скриптов python, поэтому, если это не требуется в Canopy, я очень рад отключить, если это вариант.

Любые идеи?

+0

Пожалуйста, разместите свое изменение как ответ, это нормально ответить на ваш собственный вопрос. –

ответ

9

После запуска большинства примеров в Mayavi Gallery я обнаружил, что мне нужно сообщить Черты, чтобы использовать Qt. Это было сделано путем установки переменной среды из сценария с помощью вызова sys.environment(). Я решил установить переменную окружения ETS_TOOLKIT на Qt4 в моей .profile следующим образом: **

export ETS_TOOLKIT=qt4 

Mayavi2 теперь работает как рекламируется!

+1

Спасибо! Кажется, что Wx представляет собой довольно сложную проблему с OSX с питона anaconda. –

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