python - online - PyOpenGL TypeError: el objeto ''NoneType'' no se puede llamar
python opengl 3d cube (10)
Acabo de usar python2.7.3 en windows-64bits y resolví el problema. Lo resolví utilizando un paquete no oficial de Pyopengl. Desde el punto de vista artical, parece que el paquete oficial no admite 64bits-windows. http://codeyarns.com/2012/04/27/pyopengl-installation-notes-for-windows/
Estoy tratando de aprender lo básico de la programación de juegos y he instalado pygame
y pyopengl
para eso.
Mi código:
import sys
import OpenGL
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
def draw():
glClear(GL_COLOR_BUFFER_BIT)
glutWireTeapot(0.5)
glFlush()
glutInit(sys.argv)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize(250, 250)
glutInitWindowPosition(100, 100)
glutCreateWindow("Python OGL Program")
glutDisplayFunc(draw)
glutMainLoop()
draw()
Cuando ejecuto el código anterior en mi símbolo del sistema usando
python test.py
Obtuve el siguiente error.
Traceback (most recent call last):
File "test.py", line 13, in <module>
glutInit(sys.argv)
File "C:/Python27/lib/site-packages/pyopengl-3.0.2a5-py2.7.egg/OpenGL/GLUT/special.py", line 324, in glutInit
_base_glutInit( ctypes.byref(count), holder )
TypeError: ''NoneType'' object is not callable
No entiendo por qué estoy recibiendo este error. ¿Estoy llamando a glutinit
de una manera incorrecta?
Estoy usando Python 2.7.2.
El mismo problema exacto estaba pasando conmigo. Estoy usando Python 2.7 en Windows XP de 32 bits.
Solución:
Simplemente descargue glut-3.7.6-bin.zip desde http://user.xmission.com/~nate/glut.html , descomprima, coloque glut32.dll en C: / windows / system32 y debería estar bien.
El problema fue con mi instalación de PyOpenGL
. Anteriormente lo instalé usando easy_install
.
Entonces, como @Ferdinand sugirió que parece haber algún problema con su instalación de Pyopengl.
Hice una instalación limpia usando python setup.py install
y funcionó.
Estaba usando Python 2.7.3 en Windows 7 de 64 bits y tuve un problema que causaba los mismos síntomas que Noob.
Pero la solución de reinstalación de PyOpenGL anterior no me ayudó.
Intento un tiro largo - la instalación de freeglut - ¡y ayudó!
Usé el paquete binario de Windows MSVC 2.8.0 desde here y dejé caer DLL de 32 y 64 bits en mis direcciones de 32 bits (c: / Windows / SysWOW64) y de 64 bits (C: / Windows / System32) en consecuencia.
Esto parece ser un error en el instalador de PyOpenGL win32. Se supone que debe copiar sobre el directorio DLLS del paquete fuente (.zip) pero no lo hace en mis pruebas. Esto debería abordarse en PyOpenGL, y lo haré para la próxima versión beta.
Mientras tanto, puede copiar el directorio OpenGL / DLLS de la fuente .zip de PyOpenGL 3.1.0b2 en su directorio site-packages / OpenGL para instalar GLUT y GLE DLL sin necesidad de instalarlos en los directorios de su sistema.
Instalé PyOpenGL-3.0.2b2 en Python 3.2 usando setup.py install (con privilegios de administrador), salió con el mismo error que el OP. La secuencia de comandos de configuración no copió la carpeta DLLS, por lo que debe copiarla usted mismo toda la carpeta / PyOpenGL-3.0.2b2 / OpenGL / DLLS .
Esto funcionó para mí, espero que ayude a alguien más.
Parece que uno tiene que descargar glut o freeglut junto con pyOpenGL. Y lo más importante, en mi sistema Win7 de 64 bits, solo funcionó una vez que coloqué el archivo glut32.dll
en C:/Windows/System
(NO C:/Windows/System32
- ¡colocarlo en /System32
no funcionó!)
Aquí hay un enlace para glut: http://user.xmission.com/~nate/glut.html
Y freeglut: here
Tuve un problema similar con Python 2.7 ventanas de 64 bits. Instale el paquete pyOpenGL desde http://www.lfd.uci.edu/~gohlke/pythonlibs/ . Muchas gracias a Christopher Gohlke por mantener esto !!
en linux os debes instalar freeglut3 en ubuntu 12.04:
sudo apt-get install freeglut3
glutInit()
espera 2 argumentos, primero un int como el número de argumentos de la línea de comando, luego una lista (de argumentos).
glutInit(len(sys.argv),sys.argv)
debe hacer ya que no hay argc
en el módulo sys.