Buildozer打包Kivy安卓应用时报找不到http模块错误如何解决?
问题根因
http是Python原生内置的标准库模块,无需额外安装依赖。你遇到的编译报错,核心是错误将http写入了buildozer.spec的requirements配置项:Buildozer会优先从PyPI索引拉取对应名称的第三方包匹配依赖,而PyPI上的第三方http包没有适配Android移动端的编译版本,因此触发版本匹配失败的报错。
修复步骤
- 打开你的
buildozer.spec配置文件,找到requirements配置行,删除该行中所有http相关的条目。例如修改前为requirements = python3,kivy,http,修改后为requirements = python3,kivy即可。 - 执行缓存清理命令,移除之前的无效编译缓存:
buildozer android clean - 重新执行编译命令即可正常打包:
buildozer android debug
补充说明
你代码中用到的http.server属于标准库子模块,只要不主动将http加入依赖列表,Buildozer打包时会自动包含标准库的对应组件,无需额外做适配配置。后续打包时注意:所有Python官方标准库自带的模块,都不要写入requirements配置,只有需要单独通过pip install安装的第三方库才需要加入该配置项。
内容的提问来源于stack exchange,提问作者Tahmid Faisal
相关产品推荐
相关产品推荐

