我正在尝试将图像作为base64传递给python以使用spawn进行处理,如下所示:

return new Promise(function(resolve, reject) {
      const pythonProcess = spawn('python',["./python.py", imageDataURI]);
      pythonProcess.stdout.on('data', (response) => {
        resolve(response);
      });
    });


但我得到error: Error: spawn E2BIG
我猜它太大了,无法通过这种方式传递,是否还有其他方法可以通过它产生?

似乎相关:

Node / child_process throwing E2BIG

最佳答案

感谢ottomeister的回答,我这样做是这样的:

在节点中:

const pythonProcess = spawn('python',["script.py"]);

pythonProcess.stdin.write(data);
pythonProcess.stdin.end();
pythonProcess.stdout.on('data', (result) => {
    handleResult(result);
});


在python中:

import fileinput

for line in fileinput.input():
    input +=line

# Process input

sys.stdout.write(result)
sys.stdout.flush()

关于node.js - Node.js:通过生成将图像作为base64传递给python,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55794695/

10-10 13:16