Python und OpenGL

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
htauscher
User
Beiträge: 3
Registriert: Mittwoch 18. Mai 2011, 15:09

Ich habe ein Problem OpenGl mit Python zu nutzen. Ich habe sowohl Python 2.5 als auch Python 3.2 installiert. Ausserdem habe ich jeweils PyOpenGl für beide Versionen installiert. Wenn ich nun unten stehenden Code ausführen möchte

from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

glutInit("Hello, World")
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB |GLUT_DEPTH)
glutInitWindowSize(400,400)
glutCreateWindow("Hello, World")
glClearColor(0.,0.,0.,1.)
glutSetDisplayFuncCallback(display)
glutDisplayFunc()
glutMainLoop()

if __name__ == '__main__':
pass

bekomme ich immer folgende Fehlermeldung.

"Traceback (most recent call last):
File "D:\Data\Workspace\Python\src\OpenGL\HelloWorld.py", line 10, in <module>
from OpenGL.GL import *
ImportError: No module named GL
"


Kann mir da bitte weiterhelfen?
Danke
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo und willkommen im Forum!

Das funktioniert nicht, da das Modul `OpenGL` noch nicht bekannt ist. Du könntest dieses einfach vor den drei Import importieren, dann würde es funktionieren. Auch wenn bei den GL-, GLU- und GLUT-Funktionen bereits überall Prefixe vorhaden sind, würde ich dir von den *-Importen abraten, da dieser dir den Namensraum zumüllen. Verwende einfach

Code: Alles auswählen

from OpenGL import GLUT
[...]
GLUT.glut.init("Hello World")
Das solltest du dir gleich angewöhnen und vergessen, dass es *-Importe gibt.

Außerdem solltest du keinen Code auf Modulebene haben und die ganzen aufrufe in eine Main-Funktio packen. Den dazu passenden if-name-Guard kennst du offensichtlich bereits.

Sebastian
Das Leben ist wie ein Tennisball.
htauscher
User
Beiträge: 3
Registriert: Mittwoch 18. Mai 2011, 15:09

Hallo Sebastian,

ich hab alles so gemacht wie Du es beschrieben hast. Aber irgendwie (und warum auch immer) funktioniert es bei mir nicht. Gleiches Verhalten schon beschrieben. Kannst Du mir bitte genau beschreiben was ich alles installieren muss.
Ich nutze Windows XP. Installiert habe ich folgendes:

Python (2.5 und 3.2)
PyOpenGL (für beide Python Versionen)


Vielen Dank

Helmut
BlackJack

@htauscher: Kann es sein, dass Du hier *selbst* ein Package mit dem Namen `OpenGL` erstellt hast: ``D:\Data\Workspace\Python\src\OpenGL\``? Liegt in dem Verzeichnis eine `__init__.py`? Was wird ausgegeben wenn Du in dem Programm das nicht funktioniert, folgendes am Anfang einbaust:

Code: Alles auswählen

import OpenGL
print OpenGL
htauscher
User
Beiträge: 3
Registriert: Mittwoch 18. Mai 2011, 15:09

Hallo

Ja es liegt eine __init__.py in diesem Verzeichnes!!

Der print (OpenGL) gibt folgendes aus:
<module 'OpenGL' from 'D:\Data\Workspace\Python\src\OpenGL\__init__.pyc'>

Danke
Helmut
BlackJack

@htauscher: Mir ist jetzt nicht ganz klar ob Dir damit Problem und Lösung klar sind: Du hast da ein Paket mit dem Namen `OpenGL` und wenn Du ``import OpenGL`` schreibst, dann importierst Du *Dein eigenes Paket*, weil das im Suchpfad vor dem `OpenGL`-Paket liegt, welches Du eigentlich importieren möchtest. Und da ist kein Modul mit dem Namen `GL` enthalten — darum die Fehlermeldung das `GL` nicht importiert werden kann.

Ergo: Nenn' Dein Paket anders. :-)
Antworten