Попытка вызвать неопределенную функцию 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 *
и ошибка была исправлена.