【问题标题】:Implement python-firebase in android在android中实现python-firebase
【发布时间】:2016-07-09 13:19:57
【问题描述】:

我有 python 2.7.6,安装了最新的 kivy 和 buildozer。 现在我想用firebase for python,下载地址:sudo pip install python-firebase

我可以将它作为 python-firebase 添加到 buildozer.spec 文件中的要求中。这一切都很好,在我得到的文件夹 .buildozer/applibs/ 中:

火力基地, python_firebase-1.2.dist-信息, 要求, requests-2.9.1.dist-info.

所以我希望我可以在我的应用程序中导入 firebase,但这不起作用。当我添加时:from firebase import firebase android 上的应用程序甚至无法运行(我看到了 kivy 应用程序徽标,但随后应用程序关闭了)。

谁能解释一下为什么以及接下来的步骤是什么?

编辑 1: I/python (14201): File "/home/notwaka/Desktop/App/.buildozer/android/app/_applibs/firebase/__init__.py", line 3, in <module> I/python (14201): File "/home/notwaka/Desktop/App/.buildozer/android/app/_applibs/firebase/async.py", line 1, in <module> I/python (14201): File "/home/notwaka/Desktop/App/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/multiprocessing/__init__.py", line 84, in <module> I/python (14201): ImportError: No module named _multiprocessing I/python (14201): Python for android ended.

【问题讨论】:

  • 什么不起作用,错误是什么?
  • 当我使用:`buildozer android debug deploy run'应用程序关闭。之所以这样做,是因为我添加了:从 firebase 导入 firebase。我没有看到任何错误。
  • logcat 中有错误。这是标准的 Android 开发知识。
  • 我可能在这里遗漏了一些东西,但是当Android SDK 也可用时,您为什么要使用 Python 与 Firebase 对话?
  • @FrankvanPuffelen 我在 python 中做所有事情,所以我想将一些变量从我的 python 脚本存储到 firebase。我发现了一个错误,我编辑了我的问题

标签: android python-2.7 firebase kivy buildozer


【解决方案1】:

由于与仿生(Android 的 libc)不兼容,Android 不支持 multiprocessing 模块。我建议尝试通过 pyjnius 使用 Firebase Android SDK,或者使用 Kivy 的 UrlRequest 或通过 Twisted 发出 Web 请求——毕竟它只是一个 REST API。

【讨论】:

  • 好的,谢谢!~你能解释一下如何在线程中运行非异步方法吗?因为我只想使用它,所以我需要编辑代码。
  • 实际上,更多地查看 firebase 代码,这是不可能的。无论您是否会使用它,它都会自动导入多处理。我已经更新了我的答案。
  • 我现在使用 requests python lib 解决了这个问题。它实际上很简单,现在我不需要任何 firebase 库。谢谢! @Ryan-P
  • @TimNagelkerke 我建议使用 UrlRequest 或 Twisted 而不是 requests 的原因是因为 requests 会阻塞,而其他不会。如果您在主线程中使用请求,您的应用将在等待响应时暂停。如果网站没有响应或无法访问,您的应用可能会产生 ANR(应用程序无响应)崩溃。
  • 您最终是否开始运行诸如推送通知或分析之类的 Firebase 模块?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-28
  • 2017-12-10
  • 1970-01-01
  • 2014-01-11
  • 2016-11-24
相关资源
最近更新 更多