我正在学习 Opengl,我遇到了这个问题,但无法解决。
所以这里是我在窗口打开后收到的错误消息,只有背景:
无法从 OpenGL_accelerate 加载 numpy_formathandler 加速器
。
我的脚本使用一些基本的现代 Opengl 抽象成类,使用 numpy 处理数组中的数据。它只绘制 2 个三角形。
from PyE import App
from PyE.Opengl import VBuff, Shader
from numpy import array, float32
from OpenGL.GL import (
glClear, glClearColor, glDrawArrays, glUseProgram,glEnableClientState,
GL_TRIANGLES, GL_COLOR_BUFFER_BIT, GL_FLOAT,GL_VERTEX_ARRAY
)
app = App(1080, 720, "Test Window")
glClearColor(.1,.1,.1,1.)
positions = [ 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0]
positions = array(positions, dtype=float32)
sh = Shader("test.sl")
vb = VBuff(positions, sh)
@app.mainLoop
def Draw():
glClear(GL_COLOR_BUFFER_BIT)
vb.bind()
glUseProgram(sh.prog_id)
glDrawArrays(GL_TRIANGLES,0,6)
glUseProgram(0)
vb.unbind()
if __name__ == "__main__":
Draw()
有关详细信息,我在使用 python 3.7.6 的 Windows 10 上。 希望有人能帮助我 ;) 祝你有美好的一天。
最佳答案
我发现了。
您需要从 Python 扩展包的非官方 Windows 二进制文件下载并安装包。
您需要选择这些包:
- numpy (+mkl)
- 科学
- PyOpenGL
- PyOpenGL_accelerate
- 游戏
- 自由暴饮暴食(MSVG)
如何找出哪个是正确的? 查看您的 Python 版本,对我来说是 3.8.5 。 在包名称上有一个“cp”,旁边有一个数字。 它对应于Python的版本。 就我而言,我将为 python 3.8x 使用 cp38
numpy-1.19.1+mkl- cp38 - cp38 -win_amd64.whl
下载后,只需使用 pip 安装即可。 (注意安装顺序)。
pip install numpy-1.19.1+mkl-cp38-cp38-win_amd64.whl
pip install scipy-1.5.2-cp38-cp38-win_amd64.whl
pip install PyOpenGL-3.1.5-cp38-cp38-win_amd64.whl
pip install PyOpenGL_accelerate-3.1.5-cp38-cp38-win_amd64.whl
pip install pygame-1.9.6-cp38-cp38-win_amd64.whl
对于 GLUT,将 freeglut.dll 复制到 C:/Windows 目录。
copy freeglut.dll C:\Windows
链接:
关于python-3.x - 无法从 OpenGL_accelerate 加载 numpy_formathandler 加速器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61495735/