Linux

使用 pyvirtualdisplay (Python) 時如何使用 TCP 埠禁用 Xvfb?

  • May 16, 2013

嘗試使用pyvirtualdisplayPython 啟動一些帶有虛擬XvfbX 終端的應用程序。但是,我們已經看到埠衝突,並希望禁用XvfbTCP 埠。我已經閱讀了這個關於做與此非常相似的事情的問題,但我不明白應該在哪裡設置這個配置才能使用pyvirtualdisplay(或者作為預設配置)。

對此的任何幫助將不勝感激。非常感謝!

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

引用自:https://serverfault.com/questions/504581