从节点到运行python脚本的spawn子进程返回500

时间:2017-03-15 20:23:52

标签: python node.js child-process

我正在尝试生成子进程以从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作为模型。

2 个答案:

答案 0 :(得分:0)

它必须是一个绝对路径,例如/home/username/Webcrawler/webcrawler.py

答案 1 :(得分:0)

听起来像路径问题。 还要结帐python-shell包。让你的生活变得更加轻松。