Назад | Перейти на главную страницу

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

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

Мы будем очень благодарны за любую помощь с этим. Огромное спасибо!

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