KivyBuildozer 没有名为 "google.oauth2 "的模块。

问题描述 投票:0回答:1

我正在用Kivy开发一个使用Google Sheets电子表格作为数据库的应用程序。我使用gspread和google.auth.service_account来实现这一点。当我在桌面上运行我的应用程序时,它工作正常。当我将它编译到安卓系统并尝试在手机上运行时,它崩溃了(该应用程序确实可以在手机上运行)。

这些是我的buildozer.spec文件中的要求。

    requirements = python3,kivy==1.11.1,openssl,KivyMD,google-auth-oauthlib,google-auth-httplib2,pyasn1,pyasn1-modules,rsa,requests,gspread

还有logcat:

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 [email protected] (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.

如果有任何关于如何解决这个问题的建议,我将非常感激。

python python-3.x kivy buildozer
1个回答
1
投票

有同样的问题。

当我在桌面上运行我的应用程序时,它工作得很好。当我把它编译到安卓系统并尝试在手机上运行时,它就崩溃了(该应用程序确实可以运行到手机上)。

这一行解决了 [警告] stderr: ModuleNotFoundError。没有名为 "谷歌 "的模块 错误。

错误: 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在你的机器上安装了所有需要的lib。

也请确保在 buildozer.spec 文件,像。

android.permissions = INTERNET

这帮我设置了Kivy和Buildozer的机器。

© www.soinside.com 2019 - 2024. All rights reserved.