Kivy/Buildozer没有名为“google.oauth2”的模块

2024-05-14 01:30:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Kivy开发一个应用程序,它使用Google Sheets电子表格作为数据库。我正在使用gspread和google.auth.service_帐户来执行此操作。当我在桌面上运行我的应用程序时,它工作正常。当我为android编译它并尝试在手机上运行时,它崩溃了(应用程序确实可以在手机上运行)

以下是我的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 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.

任何关于如何解决这一问题的建议都将不胜感激


Tags: inbuildinfoauthimggoogleandroidopengl
1条回答
网友
1楼 · 发布于 2024-05-14 01:30:53

我也有同样的问题

When I run my app on the desktop, it works fine. When I compile it for android and try to run on the phone, it crashes (the app does make it to the phone).

这条线修正了错误 [警告]stderr:ModuleNotFoundError:没有名为“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在您的机器上安装了所有必需的LIB

还要确保在buildozer.spec文件中指定所有需要的权限,如:

android.permissions = INTERNET

This helped me setup the Kivy and Buildozer machine

相关问题 更多 >