2013-05-03 17 views
6

In precedenza ho utilizzato un ambiente python gestito da porte Mac. Avevo alcuni script di base che utilizzavano PyQT, VTK, matplotlib, ecc. Sono stato in grado di usare Paraview, ma mi sembra un po 'pesante per i miei usi, quindi proverei MayaVi2 (e TVTK).Come rendere MayaVi2 predefinito su/use Qt piuttosto che wx?

Ho scaricato e provato a installare manualmente ma si è rivelato problematico. Quindi ho pensato di mordere il proiettile e provare Canopy (licenza accademica). Sulla base di questo VTK/Mayavi on Mac OS X che suggerisce tutto è buono nel mondo di Qt, VTK e MayaVI, ho installato Canopy a 64 bit.

Sto riscontrando problemi nel far funzionare mayavi2 nell'ambiente Canopy. Funziona, ma la console riceve molti errori, se richiamo qualsiasi finestra di dialogo/impostazione i "pulsanti" non funzionano correttamente. Ecco il primo errore (di un paio di fulls schermo) quando provo ad iniziare 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)

Sono in realtà più interessati a TVTK, così ho provato alcune delle demo MayaVi del sito Gallerie http://docs.enthought.com/mayavi/mayavi/auto/examples.html I pochi Ho provato il tipo-a funzionante, cioè mostrano una finestra/scena VTK (?), Posso interagire con la finestra VTK. Tutto va bene fino a quando non apro una finestra di dialogo/impostazioni, e quindi nessuno dei "pulsanti" della finestra di dialogo funziona e devo forzare la chiusura. Ecco l'ultima linea di errore quando apro il pulsante "Impostazioni" nella 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

Ho anche provato

ipython --gui=wx

(come suggerito nella pagina), ma in questo caso si blocca, nessuna finestra.

Sulla base dei messaggi di errore sulla console sembrano tutti correlati a wx. La mia comprensione è che l'ambiente di Canopy è "autonomo", ma il mio vecchio ambiente potrebbe essere in qualche modo in conflitto? Come potrei testarlo?

C'è un modo, variabile di ambiente, che mayavi2 può utilizzare Qt invece di wx? Non uso wx in nessuno dei miei script python locali, quindi a meno che non sia necessario in Canopy sono abbastanza felice di disabilitare, se questa è un'opzione.

Qualche idea?

+0

Inserisci la tua modifica come risposta, è possibile rispondere alla tua stessa domanda. –

risposta

9

Dopo aver eseguito la maggior parte degli esempi nel Mayavi Gallery ho scoperto che avevo bisogno di informare i tratti per usare Qt. Ciò è stato fatto impostando una variabile di ambiente all'interno dello script utilizzando una chiamata sys.environment(). Ho deciso di impostare l'ambiente ETS_TOOLKIT variabile Qt4 nel mio .profile come segue: **

export ETS_TOOLKIT=qt4 

Mayavi2 ora funziona come pubblicizzato!

+1

Grazie! Wx sembra essere piuttosto la seccatura su OSX con il pitone di anaconda. –

Problemi correlati