我在Win7 x64机器上运行Anaconda Python 2.7,并使用了
pip install PyOpenGL PyOpenGL_accelerate
在Anaconda命令行中安装PyOpenGL。
我有一些使用glutInit的代码(不是我必须承认的代码)
import sys
import math
import numpy
import OpenGL
from OpenGL.GL import *
from OpenGL.GLUT import *
import Image
import linkage
# ... a whole load of definitions etc ...
glutInit(sys.argv)
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB)
glutInitWindowSize(600, 600)
glutCreateWindow('linkage')
init()
initWindow()
glutIdleFunc(idle)
glutMainLoop()
我通过在命令行输入以下内容来运行:
python main.py peaucellier.txt
但是,然后得到以下错误(行371是上面的glutInt(sys.argv)行)
File "C:/Users/Owner/Documents/Python Scripts/linkage/main.py", line 371, in <module>
glutInit(sys.argv)
File "C:\Anaconda\lib\site-packages\OpenGL\GLUT\special.py", line 333, in glutInit
_base_glutInit( ctypes.byref(count), holder )
File "C:\Anaconda\lib\site-packages\OpenGL\platform\baseplatform.py", line 407, in __call__
self.__name__, self.__name__,
NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling
我看过在该论坛中发布的类似错误,但没有提出建议的修复程序,这就是为什么我要问,这里出了什么问题?
安装是否有故障?进口正确吗?
编辑:在尝试了许多正式版本的修复后,我现在使用的是一个从Unofficial Windows Binaries for Python Extension Packages正常工作的非官方版本
最佳答案
根据下面的链接,问题出在glut安装而不是pip install
。似乎 glut文件不属于PyOpenGL或PyOpenGL_accelerate软件包。您必须单独下载它们。
https://stackoverflow.com/a/39181193/7030177
Windows用户可以使用下面的链接来下载给定链接中提到的过剩。
ftp://ftp.sgi.com/opengl/glut/glut3.html.old#windows
Linux用户可以使用以下命令安装glut:
sudo apt-get install freeglut3-dev
希望这可以帮助 :)