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

kivy-ios编译Kivy/KivyMD iOS项目遇ModuleNotFoundError求助

Kivy-iOS编译时出现ModuleNotFoundError: No module named 'kivymd'

问题详情

  • 严格遵循kivy-ios文档操作,尝试多种Xcode项目构建方式,始终触发ModuleNotFoundError,提示未安装kivymd
  • 执行sudo toolchain pip install kivymd==1.1.1显示安装成功,通过toolchain pip list可查看到kivymd已存在
  • 已尝试操作:清理构建缓存、创建全新项目、搭配Pillow构建(所有构建配方状态均为OK),均无法解决问题
  • 环境参数:
    • Python 3.9.6
    • Cython 0.29.36(也曾尝试3.0.0版本)
    • macOS Sonoma 14.4.1
  • 项目验证:代码本身无问题,已成功编译为安卓版本且运行正常,未做任何可能引发错误的修改

可行解决方案

1. 确保kivymd被正确加入Xcode项目资源

kivy-ios通过toolchain安装的包需要手动添加到Xcode的资源目录中:

  • 打开生成的Xcode项目
  • 找到Resources目录,右键选择Add Files to "你的项目名"
  • 导航到kivy-ios的site-packages目录(通常路径为~/.kivy-ios/build/python3/site-packages/kivymd)
  • 勾选Copy items if needed和Create groups选项,点击添加

2. 避免sudo权限安装kivymd

sudo安装可能导致权限隔离问题,尝试用用户权限重新安装:

toolchain pip install kivymd==1.1.1 --user

安装完成后重新生成Xcode项目:

toolchain create 你的项目名 /项目路径/main.py

3. 校验toolchain的Python版本一致性

确保kivy-ios使用的Python版本与本地指定的3.9.6完全匹配:

  • 执行toolchain python --version确认版本
  • 若版本不一致,重新构建toolchain指定Python版本:
toolchain build python3==3.9.6

4. 手动指定kivymd路径到sys.path

在项目的main.py开头添加代码,强制将kivymd目录加入Python搜索路径:

import sys
from os.path import abspath, join, dirname

# 将kivymd目录路径加入sys.path(需先把kivymd目录复制到项目根目录)
sys.path.insert(0, abspath(join(dirname(__file__), 'kivymd')))

from kivymd.app import MDApp
# 后续项目代码...

注意:需提前将kivymd完整目录复制到项目根目录,与main.py同级

5. 彻底清理缓存后重新构建

删除旧构建缓存,重新安装所有依赖:

toolchain clean
toolchain build kivy kivymd pillow python3==3.9.6

完成后重新生成项目并执行Xcode构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:32:38