Как скрыть всплывающее окно командной строки при запуске PyLatex или Latexmk - PullRequest
5 голосов
/ 04 июля 2019

Как скрыть командную строку, которая появляется во время запуска, и выполнить pylatex коды.У меня есть страница, работающая над этим и генерировать PDF.Мне нужно скрыть всплывающее окно, когда я запускаю код.

Говоря об этом окне:

enter image description here

Есть ли способ скрыть или не показать latexmk.exepopup?

Я гуглял и искал, но не нашел ничего связанного с этой проблемой.

1 Ответ

1 голос
/ 09 июля 2019

Изучив исходный код Pylatex, метод generate_pdf (), который, я полагаю, вы могли бы использовать, фактически позволяет использовать параметр silent = true / false

Комментарий источника:

silent: bool
    Whether to hide compiler output

Однако, похоже, это не так уж и много, и я считаю, что если вы передадите этот параметр, вы все равно можете столкнуться с той же проблемой из-за;

    else:
        if not silent:
            print(output.decode())

Кажется, есть два отдельных места, где использование check_output, который является методом подпроцесса, вызывается для запуска latexmk. Что способствует окну вашего видения.

строки pylatest / document.py:

  • 227

        output = subprocess.check_output(command,
                                         stderr=subprocess.STDOUT)
    
  • 248

         output = subprocess.check_output(command,
                                         stderr=subprocess.STDOUT)
    

Возможное решение

Вы можете внести корректировку в обе эти строки, передав дополнительный параметр shell = True, который не будет отображать окно cmd при вызове latexmk.

         output = subprocess.check_output(command,
                                         stderr=subprocess.STDOUT,
                                         shell=True)
...