Ошибка нулевой функции PyOpenGL при использовании Linux в виртуальной среде [дубликат]Linux

Ответить
Anonymous
 Ошибка нулевой функции PyOpenGL при использовании Linux в виртуальной среде [дубликат]

Сообщение Anonymous »


Я пытаюсь заставить модули PyOpenGL и PyOpenGL_accelerate работать с моей (очень простой) тестовой программой pygame. Все, что я пытаюсь здесь сделать, это нарисовать трехмерное изображение с помощью PyOpenGL.

Я запускаю эту программу на Arch Linux в виртуальной среде Python, и внутри этой виртуальной среды перед запуском программы я сделал следующее:

$ pip install PyOpenGL PyOpenGL_accelerate Эти два модуля устанавливаются успешно, а строки: 'from OpenGL...' работают нормально.

Проблема возникает, когда я пытаюсь использовать функцию gluPerspective. Если я запущу программу, я получу эту ошибку:

'OpenGL.error.NullFunctionError: попытка вызвать неопределенную функцию gluPerspective, перед вызовом проверьте наличие bool(gluPerspective)' Мой программный код:

импортировать pygame из импорта pygame.locals * из импорта OpenGL.GL * из импорта OpenGL.GLU * из импорта OpenGL.GLUT * вершины = ( (1,-1,-1), (1,1,-1), (-1,1,-1), (-1,-1,-1), (1,-1,1), (1,1,1), (-1,-1,1), (-1,1,1), ) края = ( (0,1), (0,3), (0,4), (2,1), (2,3), (2,7), (6,3), (6,4), (6,7), (5,1), (5,4), (5,7), ) защита Draw_Cube(): глБегин (GL_LINES) для края в краях: для вершины в ребре: glVertex3fv(вершины[вершина]) глКонец() защита основной(): pygame.init() дисплей = (800 600) pygame.display.set_mode(display,DOUBLEBUF|OPENGL) gluPerspective(45.0,(display[0]/display[1]),1,50.0) glTranslatef(0.0,0.0,-5.0) глРотатеф(20,0,0,0) пока правда: для события в pygame.event.get(): если event.type == pygame.QUIT: pygame.quit() покидать() glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) Draw_Cube() pygame.display.flip() pygame.time.wait(10) основной() Я заметил, что если я закомментирую строку gluPerspective, программа не выйдет из строя, так что, по крайней мере, импорт OpenGL.GL работает.

Прочитав о других людях, сталкивавшихся с этой проблемой, я пришел к выводу, что, возможно, отсутствовал код, принадлежащий модулю freeglut. Кажется, нет никакого способа установить freeglut через pip внутри виртуальной среды, поэтому я установил:

sudo pacman -S python-opengl Который устанавливает opengl с freeglut в качестве зависимости. Но я получаю ту же ошибку.

Я также пробовал клонировать репозиторий git вместо использования pip, но с тем же результатом (хотя я не на 100% уверен, что правильно понимаю часть клонирования)

Я пробовал устанавливать и запускать что-то вне виртуальной среды, но это не имеет значения.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»