VTK与真正的X一起工作,与Xvfb崩溃

我正在debugging第三方的Python脚本,用VTK库实现无头image processing。 当运行一个常规的X窗口会话时,它按预期工作,瞬间闪烁一个窗口。 当针对Xvfb(内存中的虚拟帧caching)运行时,它崩溃。 剧本是这样的(绒毛省略):

inname = args[0] outname = args[1] from vtk import * reader = vtkPLYReader() reader.SetFileName(inname) gf = vtkGraphicsFactory gf.SetOffScreenOnlyMode(1) gf.SetUseMesaClasses(1) if_ = vtkImagingFactory if_.SetUseMesaClasses(1) mapper = vtkPolyDataMapper() mapper.SetInputConnection(reader.GetOutputPort()) actor = vtkActor() actor.SetMapper(mapper) renderer = vtkRenderer() renderWindow = vtkRenderWindow() renderWindow.SetSize(xsize, ysize) renderWindow.SetOffScreenRendering(1) renderWindow.AddRenderer(renderer) renderer.AddActor(actor) renderer.SetBackground(1, 1, 1) renderWindow.Render() #<------------ This line crashes wif = vtkWindowToImageFilter() wif.SetInput(renderWindow) wif.Update() writer = vtkPNGWriter() writer.SetFileName(outname) writer.SetInput(wif.GetOutput()) writer.Write() 

崩溃的消息是:

 ERROR: In /builddir/build/BUILD/VTK/Rendering/vtkXOpenGLRenderWindow.cxx, line 404 vtkXOpenGLRenderWindow (0x26942e0): Could not find a decent visual Segmentation fault (core dumped) 

Xvfb作为服务运行; 其命令行是:

  /usr/bin/Xvfb :99 -ac -extension GLX 

DISPLAY设置为:99进行testing。 操作系统是RHEL 6。

任何评论什么是“视觉”,如何在Xvfb中启用一个是值得欢迎的。

编辑:运行glxinfo给出了类似的消息:

 Error: couldn't find RGB GLX visual or fbconfig 

但GLX扩展就在命令行中。 Xvfb日志没有任何错误消息。

EDIT2:但是当我做xdpyinfo -queryExtensions ,GLX没有列出。

我使用Xvfb来运行硒测试,但我使用模块xvfbwrapper ,这是一个Xvfb轻量级模块

下面的代码:

 from xvfbwrapper import Xvfb display = Xvfb() display.start() [ yourcode ] display.stop()