PyOpenGL:cx_freeze应用程序中的glPixelStorei错误

时间:2015-01-21 10:59:26

标签: python cx-freeze pyopengl

我有一个python 3.3应用程序,它使用PyOpenGL可视化结构。 它具有将图形保存在图像文件中的功能。

def save_image(self, filename):
    glPixelStorei(GL_PACK_ALIGNMENT, 1)
    data = glReadPixelsui(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE)
    ...

在使用cx_freeze为Windows创建独立应用程序之前,它工作正常。然后我收到以下错误:

File "C:\mmpe\programming\python\h2-visualization\gui\StructureVisualizationWidget.py", line 97, in save_image
    data = glReadPixelsui(0, 0, self.width, self.height, GL_RGB, GL_UNSIGNED_BYTE)
File "C:\WinPython-64bit-3.3.3.2\python-3.3.3.amd64\lib\site-packages\OpenGL\GL\images.py", line 253, in glReadPixels
    imageData
ctypes.ArgumentError: argument 7: <class 'TypeError'>: No array-type handler for type <class 'ctypes.c_void_p'> (value: c_void_p(198443072)) registered

如果我解压缩library.zip文件并使用普通的python.exe运行它,我会得到同样的错误

1 个答案:

答案 0 :(得分:0)

我必须明确包括:

OpenGL.arrays.ctypesparameters

在cx_freeze发行版中