【发布时间】:2021-03-05 05:58:17
【问题描述】:
我想通过 subprocess 模块启动 nodejs 并向其发送输入但遇到以下错误...
代码:
import subprocess
def popen(self):
cmd = "node"
args = "--version"
spawn = subprocess.Popen(cmd,shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
(out,err)=spawn.communicate(args)
print(out)
print(err)
结果:
[stdin]:1
--version
^
ReferenceError: version is not defined
at [stdin]:1:1
at Script.runInThisContext (vm.js:132:18)
at Object.runInThisContext (vm.js:309:38)
at internal/process/execution.js:77:19
at [stdin]-wrapper:6:22
at evalScript (internal/process/execution.js:76:60)
at internal/main/eval_stdin.js:29:5
at Socket.<anonymous> (internal/process/execution.js:198:5)
at Socket.emit (events.js:327:22)
at endReadableNT (_stream_readable.js:1327:12)
预期结果:
v14.14.0
基本上,我想启动节点并与之通信,在需要时发送输入。
为了更好地控制进程而选择了 Popen 而不是运行,并且 shell 设置为 true,因此操作系统变量被视为 ex。 $路径
【问题讨论】:
标签: python python-3.x subprocess stdin communicate