【发布时间】:2018-08-17 16:04:03
【问题描述】:
我正在尝试部署一个 node.js 应用程序,该应用程序为后台任务调用 python 脚本。我实现它的方式是通过python-shell:
var pythonShell = require('python-shell');
var options = {
pythonPath: 've-env/bin/python3',
args:
[
req.query.term,
req.params.id,
req.session.user.searchName,
req.session.user.searchKey
]
};
pythonShell.run('VideoAnalyzer/Search.py', options, function (err, data) {
if (err)
throw err ;
var values = JSON.parse(data[0]).value;
var resultsByRel = values;
res.render('video', {resultsByRel: resultsByRel, resultsByTime: [], searchTerm: req.query.term, url: req.query.url});
});
python 的路径在 options.pythonPath 中指定(在名为 've-env' 的 python 虚拟环境中)。
这适用于我的本地环境。但是,当我将我的应用部署到 Azure 应用服务时,我收到了以下错误消息:
Error: spawn Unknown system error -8
at _errnoException (util.js:992:11)
at ChildProcess.spawn (internal/child_process.js:323:11)
at exports.spawn (child_process.js:502:9)
at new PythonShell (/home/site/wwwroot/node_modules/python-shell/index.js:59:25)
at Function.PythonShell.run (/home/site/wwwroot/node_modules/python-shell/index.js:160:19)
at Object.exports.search_result_video (/home/site/wwwroot/controllers/searchController.js:20:15)
at /home/site/wwwroot/routes/video.js:15:21
at Layer.handle [as handle_request] (/home/site/wwwroot/node_modules/express/lib/router/layer.js:95:5)
at next (/home/site/wwwroot/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/site/wwwroot/node_modules/express/lib/router/route.js:112:3)
该应用部署在Linux环境,节点版本为v8.9。
在部署之前我应该执行任何 python 环境配置吗?
【问题讨论】:
-
您好,有更新吗?我的回答对您有帮助吗?
标签: python node.js azure deployment azure-web-app-service