我正在尝试从Python启动Node.js进程并与之通信。我试过使用subprocess
,但它一直挂着out = p.stdout.readline()
p = subprocess.Popen(
["node"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
)
msg = "console.log('this is a test');"
p.stdin.write(msg.encode("utf-8"))
p.stdin.write(b"\n")
p.stdin.flush()
out = p.stdout.readline()
print(out)
为了成功运行shell脚本,我以前使用过非常类似的代码。我还检查了在上述Python脚本挂起时是否使用ps
运行node
进程,我可以看到它正在运行。最后,我已经设法通过Popen.communicate()
而不是readline()
获得了一个有效的响应,但是我需要保持进程运行以进行进一步的交互
有人能告诉我如何从Python生成Node.js进程并与之通信吗?它不一定需要使用subprocess
。谢谢
忘了提了,但几天后我发现我所需要的只是节点的
-i
标志,这样它就可以进入REPL了。从node -h
因此,代码现在将如下所示:
将此标记为已接受,因为它不依赖任何第三方软件包
我真的建议您使用更高级别的pexpect包,而不是子流程的低级stdin/stdout
相关问题 更多 >
编程相关推荐