Попытка вызвать неопределенную функцию glutInit

Мне нужно окно перенасыщения в 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

Платформа: Windows

Почему я получаю эту ошибку?

Вот мой код:

from OpenGL.GLUT import *
import sys

glutInit(sys.argv)

2 ответа

Решение

Проблемы:

  • Там не было никаких проблем с pip install или же easy_install
  • glut.dll а также glut32.dll пропали без вести. (Они не являются частью пакета PyPI), вы должны установить их отдельно или загрузить, как я сделал.

Разархивировал dll файлы из glutdlls.zip и поместил их рядом с моим файлом Python.

Примечание: вы можете добавить dll файлы к вашему PATH переменная. Не обязательно держать их рядом с py файл.

Мне выдавали такое же сообщение об ошибке. Я пробовал устанавливать библиотеки DLL отдельно, и все и ничего не работало. Код, вызвавший ошибку, вызывал функцию glutInit(). Пока я получал ошибку, мой импорт выглядел так:

      import OpenGL
import OpenGL.GL
import OpenGL.GLUT
import OpenGL.GLU

Затем я изменил свой импорт на:

      import OpenGL
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *

и ошибка была исправлена.

Другие вопросы по тегам