0

我想要做的是编写一个基本的 OpenGL 2.0 窗口,当我从文件运行代码时,它适用于前几次运行,然后转储错误。如果我从 IDLE GUI 运行完全相同的代码,我每次都会得到一个窗口。以下是添加的 Python 2.6.6 包、代码和错误的列表。我是否使用了任何冲突的软件包?我错过了一个包裹吗?我的导入在 IDLE GUI 中工作。任何帮助都会很棒!

日期:2011 年 8 月 1 日时间:03:20:00 AM
这是为 Python 2.6.6 安装的软件包列表。  
此文件是手动创建的,旨在用作
参考显示哪些包是按什么顺序添加的

python-2.6.6.msi
setuptools-0.6c11-win32-py26.exe
numpy-1.6.0-win32-superpack-python26.exe
PIL-1.1.7-win32-py26.exe
wxPython2.8-win32-unicode-2.8.12.0-py26.exe
wxPython2.8-win32-docs-demos-2.8.12.0.exe
pyglet-1.1.4.msi
pywin32-216-win32.py32.exe
PyOpenGL-3.0.1.win32.exe
PyOpenGL-accelerate-3.0.1-win32-py26.exe
Pygame-1.9.1-win32-py26.msi
py2exe-0.6.9-win32-py2.6.exe
psyco(使用 c:\python26\scripts\easy_install psyco)
    #import sys              #redundant(used to  eval errors)
    #import OpenGL           #redundant(used to  eval errors)       
    #import numpy            #redundant(used to  eval errors)

    #From here down is the original code, with gl imports listed as GLUT/GL/GLU
    #Page 26 PyOpenGL.pdf by Stan Blank, Ph.D
    from OpenGL.GL import *     #These 3 imports are called in a layered format
    from OpenGL.GLU import *    #Fron the simplest to the most complex(complete)
    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()
IDLE 错误列表
回溯(最近一次通话最后):
  文件“C:\Code\Python\PyOpenGL\ogl_01.py”,第 7 行,在
    从 OpenGL.GL 导入 *
  文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\GL\__init__.py”,第 2 行,在
    从 OpenGL.raw.GL 导入 *
  文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\raw\GL\__init__.py”,第 6 行,在
    从 OpenGL.raw.GL.constants 导入 *
  文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\raw\GL\constants.py”,第 7 行,在
    从 OpenGL 导入平台,数组
  文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\arrays\__init__.py”,第 22 行,在
    格式处理程序.FormatHandler.loadAll()
  文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\arrays\formathandler.py”,第 37 行,在 loadAll
    cls.loadPlugin( 入口点 )
  loadPlugin 中的文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\arrays\formathandler.py”,第 44 行
    plugin_class = entrypoint.load()
  文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\plugins.py”,第 14 行,加载中
    返回 importByName(self.import_path)
  文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\plugins.py”,第 28 行,在 importByName
    module = __import__(".".join(moduleName), {}, {}, moduleName)
  文件“C:\Python26\lib\site-packages\pyopengl-3.0.1-py2.6-win32.egg\OpenGL\arrays\numpymodule.py”,第 25 行,在
    从 OpenGL_accelerate.numpy_formathandler 导入 NumpyHandler
  文件“numpy.pxd”,第 30 行,在 OpenGL_accelerate.numpy_formathandler (src\numpy_formathandler.c:3543)
ValueError:numpy.dtype 似乎不是正确的类型对象

抱歉帖子的长度,我只是想完整地记录问题。Py 安装在 Win XP SP3 上运行,IDLE 标头:

Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32
4

2 回答 2

0

我试过这个,它在我的情况下有效,

  1. 前往http://pypi.python.org/pypi/PyOpenGL-accelerate并下载 zip包。
  2. 使用 7zip 我将包解压缩到名为PyOpenGL-accelerate-3.0.1的文件夹中
  3. 然后使用命令提示符,导航到我刚刚创建的文件夹
  4. 我输入C:\python26\python setup.py install来执行包安装

    完成后,我在 IDLE、Dr.Python 和 PythonWin 中运行了一个基本的 OpenGL 脚本。所有三个 IDE 都能够创建正确的 OpenGL 窗口(400x400 窗口、黑色背景和白色线框茶壶。)而没有任何错误。使用此解决方案,我能够保留 Numpy 1.6。

于 2011-08-28T04:35:46.190 回答
0

用于 OpenGL 的 numpy Cython 扩展可能是使用 numpy 1.3.x 构建的。因此,要么使用新的 numpy 版本重新编译 OpenGL(尤其是 Cython 扩展),要么将 numpy 降级到 1.3.x。(如果这无助于尝试降级到 1.4.x 和 1.5.x - 因为我不完全知道哪个版本发生了什么变化)。

于 2011-08-11T07:34:28.707 回答