首页 > 解决方案 > 在 IBM Watson node.js 聊天机器人中运行 python 脚本

问题描述

我使用 IBM Watson 在 Node.js 中制作了一个聊天机器人。我正在尝试在其中运行 python 脚本,但我做不到。我尝试了 browserify 并将所有依赖项捆绑在一个 .js 文件中,并在 html 页面中调用了该脚本,但它仍然无法正常工作。

var PythonShell = require('python-shell');

var options = {
    mode: 'text',
    args: 765
};

    PythonShell.run('pyt.py', options, function (err, results) {
        if (err) throw err;
        console.log('results: %j', results[0].toString());
    });

它在 node.js 和 python 文件之间本地运行。但是,当我在服务器上部署聊天机器人时不起作用。

标签: pythonnode.jsibm-cloudwatsonwatson-conversation

解决方案


如果你想使用从 Python 脚本返回的数据,你应该在你的 python 脚本中使用,试着把它:

print(dataToSendBack)
sys.stdout.flush()

然后 Node 可以通过以下方式检查您的数据:

var spawn = require("child_process").spawn;
var pythonProcess = spawn('python',["path/to/script.py", arg1, arg2, ...]);

pythonProcess.stdout.on('data', function (data){
// Do something with the data returned from python script
});

推荐阅读