Kivy打包安卓APK报ModuleNotFoundError: No module named 'pandas'如何解决?
问题原因
PyCharm本地运行时调用的是你本地Python环境安装的依赖库,但Kivy对应的安卓打包工具(Buildozer/Python for Android)不会自动同步本地环境的依赖,需要你手动声明要打包进APK的第三方库,才会触发对应库的安卓端编译和打包流程,因此会出现移动端运行找不到pandas模块的报错。
解决方案
场景1:使用Buildozer打包(Kivy官方推荐的打包工具)
- 打开项目根目录下的
buildozer.spec配置文件 - 定位到
requirements配置行,将你用到的非标准库全部添加到配置项中,math属于Python标准库不需要额外添加,修改后示例:
requirements = python3,kivy,pandas,numpy,geocoder
- 清理之前的构建缓存避免旧配置残留,执行命令:
buildozer android clean
- 重新执行打包命令生成新APK即可:
buildozer android debug
场景2:直接使用Python-for-android打包
执行打包命令时,在--requirements参数中声明所有第三方依赖即可,示例命令:
p4a apk --private . --package=org.test.myapp --name "MyApp" --version 0.1 --bootstrap=sdl2 --requirements=python3,kivy,pandas,numpy,geocoder
注意事项
- pandas、numpy均属于Python-for-android官方预支持的库,直接写库名即可完成打包,无需额外编写编译配置
- 不要将Python标准库(如math、os、sys等)添加到依赖列表中,否则可能触发编译报错
- 如果后续添加其他小众第三方库,需要先确认该库是否有Python-for-android的编译配方(recipe),无官方配方的库需要自行编写适配配置才能正常打包进APK
内容的提问来源于stack exchange,提问作者culpinha
相关产品推荐
相关产品推荐

