【问题标题】:Firebase Cloud Functions running a python script - needs dependencies运行 python 脚本的 Firebase Cloud Functions - 需要依赖项
【发布时间】:2020-12-05 14:26:50
【问题描述】:

我正在使用我在 python 中编写的算法使用 React 和 Firebase 构建一个网站。该项目的数据库和身份验证均由 Firebase 处理,因此我希望尽可能将云功能保留在同一个生态系统中。

现在,我正在使用 python-shell npm 包从 NodeJS 向我的 python 脚本发送和接收数据。 我设置了本地单元测试,因此我可以在本地测试 https.onCall 功能,而无需从客户端进行部署和测试。 当我在本地测试时,一切正常。 但是,当我将函数推送到云端并从客户端触发函数时,Firebase 控制台中的日志显示 python 脚本缺少依赖项。

确保脚本在服务器上具有所有可用依赖项的最佳方法是什么?

我尝试过: - 从我的 library/.../site-packages 复制实际的依赖文件夹,并将它们与 python 脚本放在 /functions 文件夹下的同一目录中。这几乎可以工作。我刚刚遇到了 numpy 的问题:“没有名为 'numpy.core._multiarray_umath' 的模块”被打印到 Firebase 的日志中。

如果这是一个显而易见的答案,我深表歉意。我是 Python 新手,我在网上找到的解决方案似乎可以详细说明或涉及在另一个生态系统(如 AWS 或 Heroku)中托管 Python 代码。我特别犹豫要不要去做所有这些工作,因为它在本地运行良好。如果我能找到一种方法来将依赖项与脚本一起发送,那我很高兴。

如果您需要更多信息,请告诉我。

【问题讨论】:

  • 用docker怎么样?

标签: python firebase google-cloud-functions


【解决方案1】:

Firebase 控制台中的日志显示 python 脚本缺少依赖项。

这是因为 Firebase CLI 所针对的 nodejs 运行时没有运行 python 程序所需的一切。

如果您需要运行主要用 python 编写的函数,则不应使用 Firebase CLI,而应使用 Google Cloud 工具 target the python runtime,它应该可以满足您的所有需求。是的,学习新工具对您来说可能是额外的工作,并且您将无法使用 Firebase CLI,但它是在 Cloud Functions 中运行 python 的正确方法。

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 2018-03-15
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2019-04-07
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多