ノードモジュールPythonShellを使用してPythonと通信するnw.jsアプリケーションを作成しようとしています。ノード内のPythonShell(nwjs)
問題は、私がstdinを閉じるまでコンソールに何も書き込まれていないということです。しかし、ストリームを開いたままにして、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にパイプで戻すことはできますか?
私は同じ問題を持つ 'pythonshellの代わりに' child_process.spawn'モジュールを直接使ってみました – Jeff