GLXPlatform'对象没有属性'WGL

0 投票
1 回答
1932 浏览
提问于 2025-04-18 11:42

我刚开始学习OpenGL和OpenCL。

我正在尝试运行来自这个示例的代码,但出现了一个错误:

Traceback (most recent call last):
File "/home/anka-rybalko/workspace/bla/openGL.py", line 99, in initializeGL
self.initialize_buffers()
File "/home/anka-rybalko/workspace/bla/openGL.py", line 61, in initialize_buffers
self.ctx, self.queue = clinit()
File "/home/anka-rybalko/workspace/bla/openGL.py", line 37, in clinit
+ get_gl_sharing_context_properties())
File "/usr/lib64/python2.7/site-packages/pyopencl-2014.1-py2.7-linux-x86_64.egg/pyopencl/tools.py", line 422, in get_gl_sharing_context_properties
from OpenGL import platform as gl_platform, GLX, WGL
File "/usr/lib/python2.7/site-packages/OpenGL/WGL/__init__.py", line 1, in <module>
from OpenGL.raw.WGL.VERSION.WGL_1_0 import *
File "/usr/lib/python2.7/site-packages/OpenGL/raw/WGL/VERSION/WGL_1_0.py", line 48, in <module>
@_p.types(_cs.c_int,_cs.HDC,ctypes.POINTER(_cs.PIXELFORMATDESCRIPTOR))
File "/usr/lib/python2.7/site-packages/OpenGL/raw/WGL/VERSION/WGL_1_0.py", line 13, in _f
return _p.createFunction( function,_p.PLATFORM.WGL,'WGL_VERSION_WGL_1_0',error_checker=_errors._error_checker)
AttributeError: 'GLXPlatform' object has no attribute 'WGL'

根据我的理解,WGL是Windows操作系统的一个接口,而不是Linux的。请问我需要在之前指定我的平台吗?或者我该如何解决这个问题?

提前谢谢你们!

1 个回答

0

你正在使用的代码(PyOpenGL 2014.1)引入了两个特定于平台的模块(WGL和GLX)。PyOpenGL 本来应该把这个错误显示为导入错误(ImportError),而不是属性错误(AttributeError),但无论如何,它还是会失败。

与此同时,PyOpenCL 在他们的 GitHub 仓库中解决了这个问题。如果你安装了 git 和 pip,那么这个方法应该能让你获得一个新版本(注意:这里没有为 OpenCL 开发做好设置,所以实际上无法测试这个):

pip install git+https://github.com/pyopencl/pyopencl#egg=pyopencl

撰写回答