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

如何将Python Kivy应用加载程序编译为Windows可执行exe文件

现存代码问题

  • 路径问题:BasicClasses.py中ICON='./icon.ico'使用相对路径,打包后exe运行时会找不到图标文件导致报错
  • 代码执行顺序问题:main.py中root = MainWindow()定义在if __name__=="__main__"外层,pyinstaller打包时导入模块就会触发初始化,容易引发运行异常
  • 冗余导入问题:setup.py中导入了大量不必要的第三方包,cython编译不需要这些导入,反而可能增加编译报错概率
  • 编译脚本问题:compile.bat中同时存在python和python3两条命令,Windows环境下通常不会同时配置两个命令别名,运行时会报错

修正后的操作步骤

第一步:编译生成BasicClasses.pyd

  1. 先安装基础依赖:
pip install cython kivy openpyxl pyautogui
  1. 替换setup.py内容为以下精简版本:
from distutils.core import Extension, setup
from Cython.Build import cythonize

ext = Extension(name="BasicClasses", sources=["BasicClasses.py"])
setup(ext_modules=cythonize(ext, language_level="3"))
  1. 替换compile.bat内容为:
python setup.py build_ext --inplace
  1. 双击运行compile.bat,编译完成后会在当前目录生成名称格式为BasicClasses.cp3x-win_amd64.pyd的文件,将其重命名为BasicClasses.pyd,同时把用到的icon.ico放在当前目录。

第二步:修正main.py代码

将main.py末尾代码调整为:

if __name__=="__main__":
    import sys
    # 处理打包后的资源路径
    if hasattr(sys, '_MEIPASS'):
        os.chdir(sys._MEIPASS)
    root = MainWindow()
    root.run()

第三步:使用pyinstaller打包为exe

  1. 安装pyinstaller:
pip install pyinstaller
  1. 执行打包命令:
pyinstaller -F -w --add-data "BasicClasses.pyd;." --add-data "icon.ico;." --collect-data kivy --collect-data openpyxl main.py

参数说明:-F生成单exe文件,-w隐藏控制台窗口,--add-data将pyd文件和图标打包进exe,--collect-data收集kivy和openpyxl的运行依赖资源
3. 打包完成后,可执行文件生成在dist目录下,直接双击运行即可弹出带HI按钮的窗口,正常体积在30-80MB左右。

内容的提问来源于stack exchange,提问作者Prateek Raj Gautam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:30:00