и получите немедленный ответ в консоли JS!
аюсь создать приложение nw.js, которое взаимодействует с Python, используя модуль узла PythonShell.
У меня проблема в том, что в консоль ничего не пишется, если я не закрою стандартный ввод. Однако я хотел бы оставить поток открытым, чтобы можно было отправлять несколько команд сценарию Python и сохранять его состояние в Python.
Вот мои сценарии:
script.py
import sys
def main():
command = sys.stdin.readlines() # unused for now
sys.stdout.write("HELLO WORLD")
sys.stdout.flush()
if __name__ == '__main__':
main()
main.js
var PythonShell = require('python-shell');
var pyshell = new PythonShell('script.py');
pyshell.on('message', function (message) {
console.log(message);
});
pyshell.send('hello');
На данный момент ничего не происходит.
Если я сделаюpyshell.end()
, затемHELLO WORLD
выводится на консоль. Но тогда я не могу выдать дальшеpyshell.send
команды.
Как я могу сохранить дочерний процесс Python, работающий и ожидающий ввода, при этом перенаправляя весь вывод обратно в JS?