问题:我试图在Windows 10上无头运行PsychoPy,但是却很难做到。
错误:当前,我的窗口类型设置为“ pygame”,因此我尝试在代码顶部运行os.environ["SDL_VIDEODRIVER"] = "dummy"
,但得到:pygame.error: OpenGL not available
。
代码:这是我指定窗口的地方,是否出现错误:
os.environ["SDL_VIDEODRIVER"] = "dummy"
# This line gives the error
win = visual.Window(
size=[1440, 900], fullscr=False, screen=0,
winType='pygame', allowGUI=False, allowStencil=False,
monitor='testMonitor', color=[-1,-1,-1], colorSpace='rgb',
blendMode='avg', useFBO=True)
额外信息:我愿意使用其他窗口类型(例如Pyglet),如果它可以使无头运行变得更容易,但是现在我有点卡住了。我曾考虑过尝试让OpenGL代替Pygame无头运行,但是我不知道该怎么做。如果有人可以解释如何让OpenGL / PyOpenGL无头运行,我可以尝试一下。
[确定,我认为您要查找的关键字是“屏幕外渲染”。
经过更多的挖掘,我认为最好的方法是确实修改PsychoPy:首先,您必须使用GLFW窗口而不是pygame,并且需要修改visual/backends/glfwbackend.py:
在第302行,尝试插入glfw.window_hint(glfw.VISIBLE, 0)
,看看是否适合您的用例。
PyOpenGL的先前示例:https://github.com/AntonOvsyannikov/PyOpenGL_Examples_SaveToFile