python - 在 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 文件之间本地运行。但是,当我在服务器上部署聊天机器人时不起作用。
解决方案
如果你想使用从 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
});
- 查看更多关于
child-process
.
推荐阅读
- linux - 为什么在 docker 文件中连接安装参数?
- ios - MPMediaPickerController 空白屏幕,各种错误,正确的 Info.plist 文件(iOS 13.1.3)
- android - 为什么 START 和 TOP 对于相对布局的重力会意外工作
- linode - 使用 Linode 计划托管时,我的网站会获得专用 IP 吗?
- python-3.x - Instagram 图像的纵横比
- php - 将列表更改为 PHP 中的关联数组列表
- python - 按天按小时粒度对日期时间列进行分组
- javascript - 如何在后退按钮上获取先前的 redux 状态
- android - 当应用程序不在前台时,为什么 FCM 通知 onClick 不会打开指定的活动?
- angular - 如何开发像附加图像一样的角垫滑块