Модуль Python-shell npm не может отправить данные в поток stdin Python с помощью PythonShell.send () - PullRequest
0 голосов
/ 19 декабря 2018

Я столкнулся с проблемой, когда я вызываю скрипт на python из приложения Electron.js, используя модуль python-shell npm.У меня есть цикл while, который ожидает ввода sys.stdin.readlines():

Python-скрипт:

while True:
    lines = sys.stdin.readlines()
    if len([s for s in lines if 'stop' in s]) > 0:
        print('stop')
        sys.stdout.flush()
    elif len([s for s in lines if 'do a thing' in s]) > 0:
        thing()

И мое приложение Electron.js слушает сообщение 'stop' на рисункеесли он должен уничтожить скрипт:

Электронный скрипт вызова:

pyShell.on(‘message’, function(message){
   if(message === 'stop'){
      // Kill script
   }
});

Я отправляю событие остановки в экземпляр pyShell через stdin следующим образом, который соответствует оболочке pythonдокументация:

Электрон, слушающий стандартный вывод:

pyShell.send(‘stop’);

Это не работает.Stdin кажется пустым, хотя я отправил ему 'stop', используя pyShell.send().Почему stdin пуст и что я могу сделать, чтобы это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...