从 Python Google App Engine 连接到 Firebase

Connecting to Firebase from Python Google App Engine

我正在尝试从 App Engine 连接到 Firebase,但在尝试使用 Python-Firebase 包装器导入 Firebase 时出现此错误:

File "C:\_dev\PycharmProjects\myapp\project\project_handler.py", line 31, in <module>
from firebase import firebase
File "C:\_dev\PycharmProjects\myapp\external\firebase\__init__.py", line 3, in <module>
from .async import process_pool
File "C:\_dev\PycharmProjects\myapp\external\firebase\async.py", line 1, in <module>
import multiprocessing
File "C:\PYTHON27\lib\multiprocessing\__init__.py", line 65, in <module>
from multiprocessing.util import SUBDEBUG, SUBWARNING
File "C:\PYTHON27\lib\multiprocessing\util.py", line 40, in <module>
from subprocess import _args_from_interpreter_flags
ImportError: cannot import name _args_from_interpreter_flags

其他人似乎有same issue,但我找不到答案。

python-firebase pip 包依赖于“requests" pip package which isn't available in GAE python. There's only urlfetch available (docs https://cloud.google.com/appengine/docs/python/urlfetch/).

因此,您可以实现自己的 python 代码,使用 urlfetch 直接向 firebase REST api 发出请求...或使其可重用,您或其他人可以拥有以下版本python-firebase 使用 urlfetch 而不是 requests 库。

现在有一个 python-firebase-gae 项目,它基于 URL Fetch,不依赖于任何受限的包。

python firebase 默认使用 multiprocessing 包进行线程处理。默认情况下,AppEngine 会阻止所有多处理调用。 AppEngine 通过创建任务队列并在加载时启动应用程序的其他实例来执行自己的多处理形式。

我创建了一个 python-firebase-gae 包来处理这个问题。

因为你使用的是 python 3.7 版本并且使用系统变量作为局部变量试试这个,稍后谢谢我....

1) 将 .async 重命名为 .async_

2)open__init__ 文件并将 .async 更改为 .async_

3) 打开 firebase.py 并将 .async 更改为 .async_

因为 .async 现在是关键字

希望对你有帮助