如何通过node.js运行python环境

如何通过node.js运行python环境,python,node.js,web-development-server,Python,Node.js,Web Development Server,我正在开发一个使用python模型的web应用程序。我也为python模型创建了环境。但我面临的问题是,我不知道如何通过node js执行python环境,因为我在后端使用node.js。您可以在nodejs中运行python虚拟环境,您需要从安装python虚拟环境的bin目录中调用python环境,然后可以使用child\u进程在nodejs中运行python代码,请参见以下示例: const express = require('express') const app = express(

我正在开发一个使用python模型的web应用程序。我也为python模型创建了环境。但我面临的问题是,我不知道如何通过node js执行python环境,因为我在后端使用node.js。

您可以在nodejs中运行
python虚拟环境
,您需要从安装python虚拟环境的
bin
目录中调用python环境,然后可以使用
child\u进程
在nodejs中运行python代码,请参见以下示例:

const express = require('express')
const app = express()

app.get('/', (req, res) => {

    const { spawn } = require('child_process');
    const pyProg = spawn('~/py3env/bin/python', ['test.py']);

    pyProg.stdout.on('data', function(data) {

        console.log(data.toString());
        res.write(data);
        res.end('end');
    });
})

app.listen(3000, () => console.log('listening on port 3000')) 
甚至您也可以使用excecute命令行,此时您可以运行:请参见:

const shell = require('shelljs');

shell.exec('pm2 start test.py --interpreter=./py3env/bin/python', function(code, output) {
  console.log('Exit code:', code);
  console.log('Program output:', output);
});

设置python虚拟环境后,可以在节点js中使用PythonShell 首先,通过此命令将PythonShell安装到项目中
npm安装pythonshell——保存

然后,您可以通过以下方法调用js文件中的python脚本

const path=require('path');
const{PythonShell}=require(“PythonShell”);
//这是您当前的文件夹
const py_path=path.join(_dirname',);
//这是包含python环境的文件夹
const python_exe_path=path.join(uu dirname,'python_env/scripts/python.exe');
//然后创建pythonshell选项
常量py_外壳选项={
模式:“文本”,
pythonPath:python\u exe\u路径,
pythonOptions:['-u'],//实时获取打印结果
脚本路径:py_路径
//参数:['value1','value2','value3']
};
//现在您可以初始化shell并准备使用它了
constpyshell=newpythonshell('py\u scripts/my\u script.py',py\u shell\u选项);
//通过stdin向Python脚本发送消息
pyshell.send('hello');
pyshell.on('message',函数(message){
//收到Python脚本发送的消息(一个简单的“print”语句)
控制台日志(消息);
});
//结束输入流并允许进程退出
end(函数(错误、代码、信号){
如果(错误)抛出错误;
log('退出代码为:'+代码);
log('退出信号为:'+信号);
console.log('finished');
});

既然如此,请从官方网站上阅读更多关于PythonShell的信息

您在使用spyder吗?