现在我有以下代码在node.js中生成一个python脚本:
logger.info('Spawning python process');
let proc1 = spawn('python3',
['experimental/paraphrase/paraphrase_detect.py',
results[0].answer, request.query.response]);
proc1.stdout.on('data', (data) => {
logger.info('Python script returned data');
let retVal;
if (data) {
logger.info(data.toString());
retVal = JSON.parse(data.toString());
}
return response.json({data: retVal});
});
proc1.on('close', (code, test) => {
if (code === 1) {
const msg = 'Python exited with exit code 1 meaning there was a ' +
'problem executing the script.';
logger.error(msg);
logger.error(test);
}
});
proc1.on('error', (data) => {
logger.error('Error with calling python script');
if (data) {
logger.error(data.toString());
}
});
我正在处理的问题是没有将特定的错误消息返回给节点,例如权限问题,脚本名称拼写错误或缺少python包。我能够做到的最好的事情是捕获退出代码1,这通常表明运行脚本时出现问题。
答案 0 :(得分:0)
尝试proc1.stderr.on(“data”)
更多细节。 https://nodejs.org/api/child_process.html#child_process_child_process