VTK适用于real X,崩溃于Xvfb

2024-06-16 11:01:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调试一个第三方Python脚本,它使用VTK库实现无头图像处理。当使用常规的X窗口会话运行时,它会按预期工作,在一瞬间闪烁一个窗口。当对Xvfb(内存中的虚拟帧缓冲区)运行时,它会崩溃。脚本如下(fluff省略):

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()

崩溃消息是:

^{pr2}$

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

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

为测试的DISPLAY设置了:99。操作系统是RHEL6。在

欢迎发表任何评论什么是“可视化”以及如何在Xvfb中启用它。在

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

Error: couldn't find RGB GLX visual or fbconfig

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

编辑2:但是当我做xdpyinfo -queryExtensions时,GLX没有被列出。在


Tags: 脚本消息argsreaderrendererwriteractormapper
1条回答
网友
1楼 · 发布于 2024-06-16 11:01:46

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

以下代码:

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

相关问题 更多 >