我正在尝试学习游戏编程的基础知识,并为此安装了pygame
和pyopengl
。
mycode的:
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()
当我使用
在命令提示符中运行上述代码时python test.py
我收到以下错误。
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
我不明白为什么我会收到此错误。我是以错误的方式打电话给glutinit
吗?
我使用的是Python 2.7.2。
答案 0 :(得分:13)
我在Windows 7 64位上使用Python 2.7.3并且遇到了与Noob相同症状的问题。
但是上面的PyOpenGL重新安装解决方案并没有帮助我。
我尝试了一个远程 - 安装freeglut - 它有所帮助!
我使用来自here的Windows MSVC 2.8.0二进制包并将32位和64位DLL都删除到我的32位(c:\ Windows \ SysWOW64)和64位(C:\ Windows \ System32)相应的dirs。
答案 1 :(得分:7)
我使用setup.py install(具有管理员权限)在 Python 3.2 上安装了 PyOpenGL-3.0.2b2 ,它出现了与OP相同的错误。
安装脚本没有复制DLLS文件夹,因此您必须自己复制它
整个文件夹 \ PyOpenGL-3.0.2b2 \ OpenGL \ DLLS 。
这对我有用,希望它可以帮助其他人。
答案 2 :(得分:5)
sudo apt-get install freeglut3
答案 3 :(得分:4)
似乎必须下载过量的glut或freeglut以及pyOpenGL。最重要的是,在我的64位Win7系统上,只有将glut32.dll
文件放入C:\Windows\System
(不是C:\Windows\System32
- 将其置于\System32
后才能正常工作! )
以下是过剩的链接:http://user.xmission.com/~nate/glut.html
freeglut:http://www.transmissionzero.co.uk/software/freeglut-devel/
答案 4 :(得分:4)
同样的问题发生在我身上。我在windows xp 32位上使用Python 2.7。
解决方案:
从http://user.xmission.com/~nate/glut.html下载 glut-3.7.6-bin.zip ,解压缩,将 glut32.dll 放在 C:\ windows \中system32 ,你应该没事。
答案 5 :(得分:3)
glutInit()
需要2个参数,首先是一个int作为命令行参数的数量,然后是一个列表(参数)。
glutInit(len(sys.argv),sys.argv)
应该这样做,因为模块sys中没有argc
。
答案 6 :(得分:1)
问题在于我的PyOpenGL
安装。之前我使用easy_install
安装了它。
所以,正如@Ferdinand所说,你的pyopengl安装似乎有问题。
我使用python setup.py install
进行了全新安装,但它确实有效。
答案 7 :(得分:1)
我遇到了与python 2.7 64位窗口类似的问题。 从http://www.lfd.uci.edu/~gohlke/pythonlibs/安装pyOpenGL包。非常感谢Christopher Gohlke保持这个!!
答案 8 :(得分:0)
我只是在windows-64bits上使用python2.7.3而且我遇到了这个问题。 我通过使用一个非官方的pyopengl包来解决它。 从artical,似乎官方包不支持64位窗口。 http://codeyarns.com/2012/04/27/pyopengl-installation-notes-for-windows/
答案 9 :(得分:0)
这似乎是PyOpenGL win32安装程序中的一个错误。它应该从源包(.zip)复制DLLS目录,但在我的测试中没有这样做。这应该在PyOpenGL本身中解决,我将在下一个测试版中使用。
与此同时,您可以将OpenGL / DLLS目录从PyOpenGL 3.1.0b2源.zip复制到您的site-packages / OpenGL目录中,以安装GLUT和GLE DLL,而无需将它们安装到您的系统目录中。