Javascript 运行Python脚本的Firebase云函数

Javascript 运行Python脚本的Firebase云函数,javascript,python,firebase,google-cloud-functions,Javascript,Python,Firebase,Google Cloud Functions,我有一个Express应用程序,它生成一个Python进程来执行Python脚本。当我执行firebase服务时,我可以看到我的端点被击中,然后运行Python进程。但是,该过程似乎没有执行 const runPythonScript = () => { return new Promise((resolve, reject) => { let value; const spawn = require('child_process').spaw

我有一个Express应用程序,它生成一个Python进程来执行Python脚本。当我执行
firebase服务时
,我可以看到我的端点被击中,然后运行Python进程。但是,该过程似乎没有执行

const runPythonScript = () => {
    return new Promise((resolve, reject) => {
        let value;
        const spawn = require('child_process').spawn;
        const pythonProcess = spawn('python', ['./myScript.py']);

        pythonProcess.stdout.on('data', (data: string) => {
            console.log('Am I being hit?') // This line is not being hit
            value = JSON.parse(data);
        });

        pythonProcess.on('exit', (code: number) => {
            if (code === 0) {
                resolve(value);
            }
            else {
                reject(value);
            }
        });
    });
}
从上面代码中的注释来看,stdout“data”的侦听器没有被命中。我对Firebase不太熟悉,但我的想法是在前端使用Firebase托管,然后使用Firebase云功能运行我的Express服务器。为了让我的应用程序运行Python脚本,我需要做什么

根据我从其他StackOverflow帖子()收集的信息,我无法运行Python进程,可能是因为Firebase云函数没有安装Python。因此,我需要将Python脚本打包成一个可执行文件(如上所述),这样Firebase云函数就可以运行该可执行文件。这是正确的吗?如果是这样的话,我希望不必打包所有Python脚本。有没有更好的方法来处理这个问题?是免费的吗

根据我从其他StackOverflow帖子中收集的信息,我无法运行Python进程,可能是因为Firebase云函数没有安装Python

这是真的

因此,我需要将Python脚本打包成一个可执行文件(如本文所述),这样Firebase云函数就可以运行该可执行文件。这是正确的吗

你当然可以试试这个,但我不推荐。这听起来像是做了很多工作却没有什么好处,尤其是当你有其他选择的时候

有没有更好的方法来处理这个问题


您可以用python本机编写云函数。您将无法使用Firebase工具来测试和部署它们

谢谢你的建议。我将尝试在我的解决方案中使用Google云功能(GCF)。回想起来,用JS和Python编写后端可能是不典型的。但是我将为ExpressJS实现一个GCF,它调用运行Python脚本的其他GCF。