使用 pyvirtualdisplay(Python)时如何使用 TCP 端口禁用 Xvfb?

使用 pyvirtualdisplay(Python)时如何使用 TCP 端口禁用 Xvfb?

尝试使用pyvirtualdisplayPython 启动一些带有虚拟XvfbX 终端的应用程序。但是,我们看到了端口冲突,并希望禁用XvfbTCP 端口。我已阅读关于做一些与此非常相似的事情的问题,但我不明白应该在哪里设置这个配置才能使用它pyvirtualdisplay(或者作为默认配置)。

任何帮助都将不胜感激。非常感谢!

答案1

PyVirtualDisplay 调用 Xvfb 程序,但不幸的是它不提供配置向该程序发送参数的方法。如果您想使用 PyVirtualDisplay 将 -nolisten tcp 选项传递给 Xvfb,则必须编辑包中的 pyvirtualdisplay/xvfb.py 文件。

文件底部是定义命令和选项的此部分:

@property
def _cmd(self):
    cmd = [PROGRAM,
           dict(black='-br', white='-wr')[self.bgcolor],
           '-screen',
           str(self.screen),
           'x'.join(map(str, list(self.size) + [self.color_depth])),
           self.new_display_var,
           ]
    return cmd

您需要将其修改为如下所示的内容:

@property
def _cmd(self):
    cmd = [PROGRAM,
           dict(black='-br', white='-wr')[self.bgcolor],
           '-screen',
           str(self.screen),
           'x'.join(map(str, list(self.size) + [self.color_depth])),
           self.new_display_var,
           '-nolisten',
           'tcp',
           ]
    return cmd

相关内容