Как отключить Xvfb с использованием портов TCP при использовании pyvirtualdisplay (Python)?

Пытаясь использовать pyvirtualdisplay для Python для запуска некоторых приложений с виртуальным Xvfb X терминал. Тем не менее, мы видели конфликты портов и хотели бы отключить Xvfb от использования портов TCP. Я прочитал этот вопрос о том, чтобы сделать что-то очень похожее на это, но я не понимаю, где эта конфигурация должна быть установлена ​​для него, чтобы работать с pyvirtualdisplay (или в качестве конфигурации по умолчанию в противном случае).

Любая помощь с этим будет очень признательна. Спасибо большое!

1 ответ

Решение

PyVirtualDisplay вызывает программу Xvfb, но, к сожалению, она не позволяет настроить параметры отправки этой программе. Если вы хотите передать опцию -nolisten tcp в Xvfb с PyVirtualDisplay, вам придется отредактировать файл 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
Другие вопросы по тегам