2012-08-07 9 views
23

Ho bisogno di creare un contesto OpenGL in Tkinker, per usarlo con il modulo PyOpenGL Python.Contesto OpenGL di Tkinter in Python

Tkinker non supporta nativamente contesto OpenGL, ma ho trovato questa pagina sui documenti PyOpenGL, che spiega come utilizzare un wrapper inclusi nel modulo per questo: http://pyopengl.sourceforge.net/documentation/context/

ho cercato di eseguire il codice fornito, ma io ricevuto un messaggio che dice che il modulo TOGL non è stato trovato. Ho scaricato il modulo da http://togl.sourceforge.net/, ma non sono riuscito a farlo funzionare.

PS. Ho fatto il test su Mac OS X, con Python 3.2, usando virtualenv.

+3

Che cosa esattamente non ha funzionato con il modulo TOGL? Hai ricevuto un errore? In tal caso, postare il traceback. –

+0

sì, sarebbe bello se potessi elaborare. –

+0

solo a indovinare, ma il modulo sembra uscire vecchio. Forse l'esecuzione di Python 2.7 risolve il tuo problema? – jorrebor

risposta

7

PyOpenGL fornisce collegamenti Python per il widget Tk OpenGL (Togl) ma non per Togl, ecco perché è necessario scaricarlo. Ora, installare Togl è semplice ma non è disponibile uno strumento pronto per eseguire l'operazione. Poiché i binding Python useranno Tcl per caricare il modulo Togl, il widget deve vivere in una delle directory presenti in Tcl auto_path, che è dove Tcl cerca caricamento delle librerie. Quello che puoi fare è avviare un interprete Tcl, tclsh, e controllare quali sono queste directory facendo puts $auto_path. Nel mio caso ho copiato la directory lib/Togl2.0 (all'interno del .tar.gz di Togl) su /opt/local/lib/tcl8.5. Puoi anche estendere auto_path per cercare altre directory, ma non lo sto citando qui.

Quindi ho provato a utilizzare Python 2.7 su Mac OSX. Fare import OpenGL.Tk tenta di caricare Togl, peccato che non riesca. Il motivo è che Togl viene precompilato per i386, dal momento che ho creato Python come binario universale tutto ciò che ho fatto è stato eseguito come arch -i386 python2.7 e ora import OpenGL.Tk funziona.