Как правильно запустить команду оболочки во 2-м удаленном терминале в VSCode из скрипта python

#python #visual-studio-code #terminal

#python #visual-studio-code #терминал

Вопрос:

Я разрабатываю скрипт Python удаленно через SSH на Raspberry Pi с помощью VSCode.

В скрипте я хочу запустить команду в отдельном подпроцессе с

subprocess.Popen('command')

Команда выдает вывод в стандартный вывод, который я хотел бы отобразить во втором терминале для целей отладки.

Какую команду python я использую лучше всего.

Спасибо за помощь!

Ответ №1:

Вы можете либо использовать logging модуль для записи этой информации в файл, либо использовать что-то подобное с .call() помощью функции:

 from subprocess import PIPE, run

cmd = [command, "-arg1", "-arg2"]
result = run(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True)
print(result.stdout)
print(result.stderr)
 

выводится вывод.

Комментарии:

1. Спасибо за информацию! Я также нашел вариант с «GNU screen». Для VSCode есть плагин (с несколькими терминалами). Если бы кто-нибудь мог дать мне несколько советов, я был бы признателен. Я попробую завтра и дам отзыв!

Ответ №2:

Я думаю, что правильный путь — использовать libtmux (https://libtmux.git-pull.com/quickstart.html#quickstart и https://libtmux.git-pull.com/api.html )

На самом деле вы можете отправлять и получать строки в нескольких параллельных независимых сеансах терминала!

Для моей необходимости общаться с сервером websocket во время проверки состояния сервера, это идеальное решение для меня. Он выполняется в VSCode для целей отладки во время кодирования, а также в обычном сеансе SSH после развертывания для удаленного устранения проблем.

С наилучшими пожеланиями, LeFish