首页 > 解决方案 > 如何在 Google Cloud Function 中将 python 脚本作为子进程运行

问题描述

import subprocess 
import os

def execute(): 
    code = "def Solution():\n\tprint('Hello')\n\nSolution()\n"
    f = open('/tmp/Solution.py','w')
    f.write(code+'\n')
    f.close() 
    s = subprocess.check_output("python /tmp/Solution.py", shell = True) 
    return s

我正在从云函数处理程序调用执行函数。这在本地工作,但在 gcloud subprocess.check_output 返回非零退出代码。

是不是因为gcloud运行环境找不到python解释器?在任何一种情况下,我怎么能做这样的事情?我在这里想念什么?我在日志中没有太多信息,所以我被卡住了。

谢谢

标签: pythonsubprocessgoogle-cloud-functionsserverless

解决方案


您必须期望您的函数被部署到一个容器中,在您的情况下,该容器包括一个 Python 运行时。您不能假设您的云功能也包含一个外壳。因此不建议subprocess在您的 python 代码中使用。


推荐阅读