2013-05-03 11 views
6

Poprzednio używałem środowiska python utrzymywanego przez porty Mac. Miałem kilka podstawowych skryptów przy użyciu PyQT, VTK, matplotlib itp. Byłem w stanie używać Paraview, ale wydaje mi się, że jest trochę ciężki dla moich zastosowań, więc chciałem wypróbować MayaVi2 (i TVTK).Jak ustawić domyślnie MayaVi2 na Qt zamiast wx?

Pobrałem i próbowałem zainstalować ręcznie, ale okazało się to kłopotliwe. Pomyślałem więc, że ugryzę kulę i spróbuję Canopy (licencja akademicka). Na podstawie tego VTK/Mayavi on Mac OS X, który sugeruje, że wszystko jest dobre w świecie Qt, VTK i MayaVI, zainstalowałem 64-bitowe Canopy.

Mam problem z uzyskaniem mayavi2 do pracy w środowisku Canopy. Działa, ale konsola dostaje wiele błędów, jeśli wezwę okno dialogowe/ustawienia, "przyciski" nie działają poprawnie. Oto pierwszy błąd (od kilku fulls ekran), gdy próbuję uruchomić 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)

Jestem rzeczywiście bardziej zainteresowany TVTK, więc próbowałem niektóre dema mayavi z galerii na stronie http://docs.enthought.com/mayavi/mayavi/auto/examples.html Nieliczni Próbowałem rodzaju - pracował, to znaczy, że wyświetlają okno/scenę VTK (?), Mogę wchodzić w interakcje z oknem VTK. Wszystko jest dobre, dopóki nie otworzę okna ustawień/dialogu, a następnie żadne z okien dialogowych "przycisk" nie działa i muszę wymusić zakończenie. Oto ostatnia linia błędu podczas otwierania przycisk „Ustawienia” w 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

Próbowałem nawet

ipython --gui=wx

(jak sugeruje się na stronie), ale w tym przypadku awarii, bez okna.

Na podstawie komunikatów o błędach na konsoli wszystkie wydają się powiązane z WX. Rozumiem, że środowisko Canopy jest "samowystarczalne", ale czy moje stare środowisko może być w jakiś sposób sprzeczne? Jak mógłbym to przetestować?

Czy istnieje sposób, zmienna środowiskowa, która mayavi2 może używać Qt zamiast wx? Nie używam wx w żadnym z moich lokalnych skryptów Pythona, więc jeśli nie jest to potrzebne w Canopy, jestem całkiem szczęśliwy, aby wyłączyć, jeśli jest to opcja.

Wszelkie pomysły?

+0

Proszę zaksięgować swoją odpowiedź jako odpowiedź, można odpowiedzieć na własne pytanie. –

Odpowiedz

9

Po uruchomieniu większości przykładów w odkryłem, że muszę poinformować Cechy, aby użyć Qt. Dokonano tego poprzez ustawienie zmiennej środowiskowej w skrypcie za pomocą wywołania sys.environment(). Postanowiłem ustawić zmienną środowiskową ETS_TOOLKIT do Qt4 w moim .profile następująco: **

export ETS_TOOLKIT=qt4 

Mayavi2 teraz działa jak reklamowane!

+1

Dziękujemy! Wx wydaje się być dość kłopotliwy dla OSX-a z pytonem anakondy. –

Powiązane problemy