构建Kivy APK遇pickle安装错误:无法找到匹配版本
解决Kivy APK构建中的pickle依赖问题
问题根源
PyPI上不存在名为pickle的独立包——pickle是Python标准库的核心组件,所有标准Python环境都默认包含它,所以无论是指定pickle还是pickle==4.0.0都会触发找不到包的错误。
修复步骤
移除Buildozer配置中的pickle依赖
打开buildozer.spec文件,找到requirements行,删掉所有pickle相关的条目(比如pickle、pickle==4.0.0)。排查模型加载崩溃的真实原因
去掉pickle依赖后应用崩溃,通常不是因为缺少pickle,而是以下两种情况:- Python版本兼容问题:模型是用高版本Python序列化的,但Buildozer默认打包的Python版本较低。解决:序列化模型时指定兼容的协议版本,比如:
import pickle # 使用protocol=4适配Python 3.4+,覆盖Buildozer常用的Python版本 with open("model.pkl", "wb") as f: pickle.dump(your_model, f, protocol=4) - 缺失模型依赖库:模型依赖的第三方库(比如scikit-learn、TensorFlow Lite等)没被加入Buildozer的requirements。检查模型用到的所有库,把它们添加到
requirements中,例如:requirements = python3,kivy,scikit-learn,tensorflow-lite
- Python版本兼容问题:模型是用高版本Python序列化的,但Buildozer默认打包的Python版本较低。解决:序列化模型时指定兼容的协议版本,比如:
重新构建APK
执行命令重新打包:buildozer android debug deploy run
内容的提问来源于stack exchange,提问作者Teddy
相关产品推荐
相关产品推荐

