我正在使用React和Firebase构建一个网站,该网站使用了我在python中编写的算法。该项目的数据库和身份验证都由Firebase处理,所以如果可能的话,我希望将云功能保留在同一个生态系统中。
现在,我正在使用python shell npm包将数据从NodeJS发送和接收到我的python脚本。我设置了本地单元测试,这样我就可以在本地测试https.onCall函数,而无需从客户端进行部署和测试。当我在本地测试时,一切都很顺利。然而,当我将函数推送到云中并从客户端触发函数时,Firebase控制台中的日志显示python脚本缺少依赖项。
确保脚本在服务器上具有所有可用依赖项的最佳方法是什么?
我尝试过:-正在从我的库/中复制实际的依赖项文件夹/站点包,并使用python脚本将它们放在/functions文件夹下的同一目录中。这几乎奏效了。我刚刚遇到了一个关于numpy的问题:"没有名为"numpy.core_multialy_umath"的模块"已打印到Firebase中的日志中。
如果这是一个显而易见的答案,我深表歉意。我是Python的新手,我在网上找到的解决方案似乎是在另一个生态系统(如AWS或Heroku(中精心设计或托管Python代码的方式。我特别犹豫要不要去做这些工作,因为当地的情况很好。如果我能找到一种方法,用脚本发送依赖项,我很乐意去。
如果你需要更多信息,请告诉我。
Firebase控制台中的日志显示python脚本缺少依赖项。
这是因为Firebase CLI所针对的nodejs运行时没有运行python程序所需的一切。
如果你需要运行一个主要用python编写的函数,你不应该使用Firebase CLI,而应该使用谷歌云工具来针对python运行时,它应该可以完成你想要的一切。是的,学习新工具可能需要额外的工作,而且您将无法使用Firebase CLI,但这将是在Cloud Functions中运行python的正确方法。