0

私は 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 OS 用の API であり、Linux 用ではありません。どうにかしてプラットフォームを事前に指定する必要がありますか? または、どうすればこれを修正できますか?

前もって感謝します!

4

1 に答える 1

0

使用しているコード (PyOpenGL 2014.1) は、2 つのプラットフォーム固有のモジュール (WGL と GLX) をインポートしています。PyOpenGLはそのエラーを (AttributeError ではなく) ImportError として発生させるべきでしたが、それでも失敗していました。

その間、PyOpenCL は github リポジトリでこの問題を回避しました。git (および pip) がインストールされている場合、これにより新しいバージョンが取得されます (注: ここでは OpenCL 開発用に設定されていないため、実際にこれをテストすることはできません)。

pip install git+https://github.com/pyopencl/pyopencl#egg=pyopencl
于 2014-07-04T20:32:56.640 に答える