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

使用Nuitka编译Kivy程序报错:No module named 'kivy.weakmethod'

解决Nuitka编译Kivy程序时的kivy._clock与kivy.weakmethod缺失问题

问题重现

尝试用Nuitka编译基于Kivy的Python程序,使用过以下命令:

nuitka --mingw64 --follow-imports Tivy3.py 
python -m nuitka --plugin-enable=kivy --standalone your_script.py

运行编译后的可执行文件时,出现错误:

[ERROR ] [Clock ] Unable to import kivy._clock. Have you perhaps forgotten to compile kivy? Kivy contains Cython code which needs to be compiled. A missing kivy._clock often indicates the Cython code has not been compiled. Please follow the installation instructions and make sure to compile Kivy
Traceback (most recent call last):
File "C:\Users\oliveira pc2\anaconda3\envs\nuitikavirtual\Tivy3.py", line 23, in from kivy.app import App
File "C:\Users\oliveira pc2\anaconda3\envs\nuitikavirtual\lib\site-packages\kivy\app.py", line 417, in from kivy.base import runTouchApp, async_runTouchApp , stopTouchApp
File "C:\Users\oliveira pc2\anaconda3\envs\nuitikavirtual\lib\site-packages\kivy\base.py", line 28, in from kivy.clock import Clock
File "C:\Users\oliveira pc2\anaconda3\envs\nuitikavirtual\lib\site-packages\kivy\clock.py", line 466, in from kivy._clock import CyClockBase, ClockEvent, FreeClockEvent,
File "kivy_clock.pyx", line 10, in init kivy._clock
ModuleNotFoundError: No module named 'kivy.weakmethod'

已完成操作:用Conda创建nuitikavirtual虚拟环境,安装Nuitka、Kivy及依赖,复制脚本到环境目录,问题仍存在。

解决方案

1. 先验证Kivy环境可用性

激活虚拟环境后,直接运行原脚本,确认Kivy本身能正常工作:

conda activate nuitikavirtual
python Tivy3.py

如果这一步报错,先解决Kivy的安装问题(比如重新编译或安装Kivy),再进行编译操作。

2. 使用修正后的Nuitka编译命令

替换错误的脚本名,启用Kivy官方插件,并手动指定缺失的模块:

python -m nuitka --plugin-enable=kivy --standalone --mingw64 --include-module=kivy.weakmethod Tivy3.py

参数说明:

  • --plugin-enable=kivy:启用Nuitka的Kivy专用插件,自动处理Kivy的Cython编译依赖与资源打包
  • --standalone:生成无需依赖Python环境的独立可执行文件
  • --mingw64:指定使用MinGW编译器(适配Windows环境)
  • --include-module=kivy.weakmethod:强制打包自动检测遗漏的kivy.weakmethod模块

3. 若问题仍存在,切换为pip安装Kivy

Conda打包的Kivy可能与Nuitka插件兼容性不佳,尝试用pip重新安装:

conda uninstall kivy
pip install kivy[base]

重新运行上述编译命令。

4. 按需补充其他缺失模块

如果编译后仍有其他模块缺失,继续用--include-module=缺失模块名添加到命令中,比如后续出现kivy.xxx缺失,就追加对应参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:52:50