python - Kivy/Buildozer 没有名为“google.oauth2”的模块
问题描述
我正在使用 Kivy 开发一个应用程序,它使用 Google 表格电子表格作为其数据库。我正在使用 gspread 和 google.auth.service_account 来执行此操作。当我在桌面上运行我的应用程序时,它运行良好。当我为 android 编译它并尝试在手机上运行时,它崩溃了(该应用程序确实可以进入手机)。
这些是我的 buildozer.spec 文件中的要求:
requirements = python3,kivy==1.11.1,openssl,KivyMD,google-auth-oauthlib,google-auth-httplib2,pyasn1,pyasn1-modules,rsa,requests,gspread
和日志猫:
05-01 18:28:03.346 2542 2568 I python : [INFO ] [Logger ] Record log in /data/user/0/org.helman.wtfmercado/files/app/.kivy/logs/kivy_20-05-01_1.txt
05-01 18:28:03.347 2542 2568 I python : [INFO ] [Kivy ] v1.11.1
05-01 18:28:03.347 2542 2568 I python : [INFO ] [Kivy ] Installed at "/data/user/0/org.helman.wtfmercado/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
05-01 18:28:03.347 2542 2568 I python : [INFO ] [Python ] v3.8.1 (default, Apr 29 2020, 16:44:54)
05-01 18:28:03.347 2542 2568 I python : [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462
05-01 18:28:03.347 2542 2568 I python : [INFO ] [Python ] Interpreter at ""
05-01 18:28:03.347 2542 2568 I python : [INFO ] [KivyMD ] v0.104.1
05-01 18:28:03.349 2542 2568 I python : [INFO ] [Factory ] 184 symbols loaded
05-01 18:28:04.022 2542 2568 I python : [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
05-01 18:28:04.066 2542 2568 I python : [INFO ] [Window ] Provider: sdl2
05-01 18:28:04.083 2542 2568 I python : [INFO ] [GL ] Using the "OpenGL ES 2" graphics system
05-01 18:28:04.084 2542 2568 I python : [INFO ] [GL ] Backend used <sdl2>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] OpenGL version <b'OpenGL ES 3.2 V@331.0 (GIT@4c638fb, I557c585805) (Date:10/06/18)'>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] OpenGL vendor <b'Qualcomm'>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] OpenGL renderer <b'Adreno (TM) 540'>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] OpenGL parsed version: 3, 2
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] Texture max size <16384>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] Texture max units <16>
05-01 18:28:04.106 2542 2568 I python : [INFO ] [Window ] auto add sdl2 input provider
05-01 18:28:04.107 2542 2568 I python : [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
05-01 18:28:04.115 2542 2568 I python : [INFO ] [Text ] Provider: sdl2
05-01 18:28:04.173 2542 2568 I python : [INFO ] [GL ] NPOT texture support is available
05-01 18:28:04.378 2542 2568 I python : Traceback (most recent call last):
05-01 18:28:04.378 2542 2568 I python : File "/home/sam/Desktop/WTF_Mercado/.buildozer/android/app/main.py", line 15, in <module>
05-01 18:28:04.378 2542 2568 I python : File "/home/sam/Desktop/WTF_Mercado/.buildozer/android/platform/build-arm64-v8a/build/python-installs/wtfmercado/gspread/__init__.py", line 16, in <module>
05-01 18:28:04.379 2542 2568 I python : File "/home/sam/Desktop/WTF_Mercado/.buildozer/android/platform/build-arm64-v8a/build/python-installs/wtfmercado/gspread/auth.py", line 12, in <module>
05-01 18:28:04.379 2542 2568 I python : ModuleNotFoundError: No module named 'google.oauth2'
05-01 18:28:04.379 2542 2568 I python : Python for android ended.
非常感谢任何有关如何解决此问题的建议。
解决方案
有同样的问题。
当我在桌面上运行我的应用程序时,它运行良好。当我为 android 编译它并尝试在手机上运行时,它崩溃了(该应用程序确实可以进入手机)。
此行修复了 [WARNING] stderr: ModuleNotFoundError: No module named 'google'错误:
文件:buildozer.spec
requirements = python3,kivy,gspread,oauth2client,httplib2,pyopenssl,google-auth-oauthlib,pyasn1,pyasn1-modules,rsa,requests,google-auth-httplib2,openssl,google-api-python-client,google-auth,credentials,oauth2,google,cachetools,urllib3,chardet,idna,requests_oauthlib,oauthlib
确保通过 apt-get install 或 pip3 install 在机器上安装了所有必需的库。
还要确保在buildozer.spec文件中指定所有需要的权限,例如:
android.permissions = INTERNET
推荐阅读
- python - 如果从列表中调用 python 函数,则不会模拟
- arrays - 带有问题和答案的 Xcode Quiz 外观类似的应用程序
- python-3.x - 如何使用 Python3 从共享点获取文件
- search - yii2在gridview加密数据中搜索(searchModel)
- ios - 如何更改水平滚动集合视图中单元格之间的水平间距
- node.js - 用于授权外部应用 NodeJS 的令牌
- c# - Control.InvokeRequired 在任务中为假
- git - Microsoft Sql Server 分析服务 (SSAS) 上的版本控制
- angular - 在现有的 Angular 9 应用程序中集成 express api
- kotlin - 枚举接口数组的类型推导失败