Ich versuche, eine nw.js-Anwendung zu erstellen, die mit Python über das Knotenmodul PythonShell kommuniziert.PythonShell in Knoten (nwjs)
Das Problem, das ich habe, ist, dass nichts auf die Konsole geschrieben wird, bis ich die Standardeingabe schließe. Allerdings möchte ich den Stream geöffnet lassen, damit ich mehrere Befehle an das Python-Skript senden und Python seinen Status speichern kann.
Hier meine Skripte sind:
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');
An diesem Punkt, passiert nichts.
Wenn ich pyshell.end()
mache, wird HELLO WORLD
an die Konsole ausgegeben. Aber dann kann ich keine weiteren pyshell.send
Befehle ausgeben.
Wie kann ich den untergeordneten Python-Prozess laufen lassen und auf Eingabe warten, aber alle Ausgaben zurück zu JS leiten?
Ich sollte beachten, ich habe auch versucht, mit dem 'child_process.spawn' Modul direkt (anstelle von Pythonshell) mit dem gleichen Problem – Jeff