我正在尝试生成子进程以从Node运行python脚本。我有以下请求:
/webcrawler?source=http://www.pygamers.com&method=BFS&nodeCount=3&depth=0&keyword=game
我已经确认我的参数正确进入。以下是我在app.js
中设置处理请求的代码:
app.get('/webcrawler', function(req, res){
var python = require('child_process').spawn(
'python',
["WebCrawler/Webcrawler.py"
, req.query.source
, req.query.method
, req.query.nodeCount
, req.query.depth
, req.query.keyword]
);
var output = "";
python.stdout.on('data', function(data){ output += data });
python.on('close', function(code){
if (code !== 0) {
return res.send(500, code);
}
return res.send(200, output);
});
});
我正在调用我的Python脚本Webcrawler.py
,它位于WebCrawler目录中。 WebCrawler目录与app.js
位于同一目录中。
然而,这个请求给了我500,我还没弄清楚为什么。好像我必须错误地生成子进程。我使用this answer作为模型。
答案 0 :(得分:0)
它必须是一个绝对路径,例如/home/username/Webcrawler/webcrawler.py
答案 1 :(得分:0)
听起来像路径问题。 还要结帐python-shell包。让你的生活变得更加轻松。