You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy+Buildozer安卓打包遇ModuleNotFoundError: No module named 'cachetools'

解决Kivy+gspread安卓打包后cachetools模块缺失问题

问题背景

开发集成gspread的Kivy应用,PC端运行正常,安卓打包后崩溃,日志显示ModuleNotFoundError: No module named 'cachetools',即使已在buildozer.spec的requirements中添加cachetools。

当前requirements配置:

requirements = python3,kivy,gspread,oauth2client,google,google-auth,google-auth-oauthlib,httplib2,cachetools

错误日志:

05-21 07:53:13.707  1554  1618 I python  :  Traceback (most recent call last):
05-21 07:53:13.707  1554  1618 I python  :    File "/home/jayanta/Downloads/kivy/.buildozer/android/app/main.py", line 9, in <module>
05-21 07:53:13.707  1554  1618 I python  :    File "/home/jayanta/Downloads/kivy/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/gspread/__init__.py", line 16, in <module>
05-21 07:53:13.708  1554  1618 I python  :    File "/home/jayanta/Downloads/kivy/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/gspread/auth.py", line 14, in <module>
05-21 07:53:13.708  1554  1618 I python  :    File "/home/jayanta/Downloads/kivy/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/google/oauth2/credentials.py", line 45, in <module>
05-21 07:53:13.708  1554  1618 I python  :    File "/home/jayanta/Downloads/kivy/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/google/oauth2/reauth.py", line 40, in <module>
05-21 07:53:13.708  1554  1618 I python  :    File "/home/jayanta/Downloads/kivy/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/google/oauth2/_client.py", line 36, in <module>
05-21 07:53:13.708  1554  1618 I python  :    File "/home/jayanta/Downloads/kivy/.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/google/auth/jwt.py", line 52, in <module>
05-21 07:53:13.709  1554  1618 I python  :  ModuleNotFoundError: No module named 'cachetools'
05-21 07:53:13.709  1554  1618 I python  : Python for android ended.

解决方案

1. 清理Buildozer缓存并重新构建

旧缓存可能导致依赖未正确安装,执行以下命令:

buildozer android clean
buildozer android debug deploy run

2. 指定cachetools的稳定版本

直接使用包名可能拉取最新版本,存在安卓兼容性问题,修改requirements为:

requirements = python3,kivy,gspread,oauth2client,google-auth,google-auth-oauthlib,httplib2,cachetools==5.3.0

(5.3.0是经过验证的适配安卓的稳定版本,可根据实际情况调整)

3. 适配安卓API和NDK版本

确保buildozer.spec中配置的安卓版本与依赖兼容:

android.api = 33
android.ndk = 25b

过高或过低的API/NDK版本可能导致依赖编译失败。

4. 验证依赖安装状态

如果以上步骤无效,检查构建目录下是否存在cachetools:

  • 路径:.buildozer/android/platform/build-arm64-v8a_armeabi-v7a/build/python-installs/myapp/arm64-v8a/cachetools
  • 若不存在,说明依赖未安装成功,可尝试手动下载对应架构的wheel包,放入buildozer.spec指定的p4a.local_recipes目录后重新构建。

内容的提问来源于stack exchange,提问作者DJ1411

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:27:08