尝试调用未定义的函数glutInit

Sza*_*mbi 3 python glut pyopengl python-3.x

我在python中需要一个过剩的窗口.我使用Python 3.5和PyOpenGL.GLUT有以下异常

Traceback (most recent call last):
  File "D:\...\Test.py", line 47, in <module>

    if __name__ == '__main__': main()
  File "D:\...\Test.py", line 9, in main
    glutInit(sys.argv)
  File "C:\...\OpenGL\GLUT\special.py", line 333, in glutInit
    _base_glutInit( ctypes.byref(count), holder )
  File "C:\...\OpenGL\platform\baseplatform.py", line 407, in __call__
    self.__name__, self.__name__,

OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit,
check for bool(glutInit) before calling
Run Code Online (Sandbox Code Playgroud)

平台:Windows

为什么我会收到此错误?

这是我的代码:

from OpenGL.GLUT import *
import sys

glutInit(sys.argv)
Run Code Online (Sandbox Code Playgroud)

Sza*_*mbi 5

问题:

  • pip install或没有问题easy_install
  • glut.dllglut32.dll人失踪.(它们不是PyPI包的一部分)你必须单独安装它们或像我一样下载它.

从中解压缩dll文件glutdlls.zip并将它们放在我的python文件旁边.

注意:您可以将dll文件添加到PATH变量中.没有必要将它们放在py文件旁边.

  • 卸载当前的 PyOpenGL,只需从 [非官方 Windows Python 二进制文件](https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl) 下载 PyOpenGL,然后使用 pip 安装 whl。 (4认同)
  • 为我工作.对未来读者的一些澄清:这两个所需dll的链接是:[link](ftp://ftp.sgi.com/opengl/glut/glutdlls.zip)在Windows 7上放了"过剩".你的Python2.7 OpenGL DLL文件夹中的dll`和`glut32.dll`. (3认同)
  • FTP 链接不再托管。 (3认同)
  • 第二个错误是使用“conda install -c conda-forge pyopengl”安装“官方”PyOpenGL,但不起作用。解决方案我使用“pip uninstall PyOpenGL”卸载了官方版本,并按照@MAY的建议安装了非官方Windows二进制文件。最初抛出错误:“.whl 在此平台上不受支持。”对于 32 位和 64 位版本,但那是因为我忘记选择名为“PyOpenGL-3.1.5”的“python 36 版本” ‑cp&lt;Python 版本&gt;‑cp&lt;PYTHON 版本&gt;m‑win_amd64.whl`。希望这对某人有帮助。还安装了`conda install -c conda-forge freeglut`。 (2认同)