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

使用auto-py-to-exe打包后运行提示MainWindow.ui文件不存在如何解决

PyQt项目使用auto-py-to-exe打包后找不到UI文件解决方案

问题根因

你遇到的路径找不到报错,核心是两个原因:

  • 硬编码的相对路径以运行时的工作目录为基准,开发环境和打包后运行环境的工作目录不一致,路径解析失效
  • 打包时没有将UI文件作为附加资源纳入打包产物,运行时自然无法读取到对应文件

具体修复步骤

1. 新增动态路径获取逻辑

在加载UI的代码文件头部加入以下逻辑,自动适配开发、打包两种运行场景的根路径:

import os
import sys

def get_base_path():
    # 打包后运行时读取临时资源目录
    if getattr(sys, 'frozen', False):
        return sys._MEIPASS
    # 开发环境读取当前脚本所在目录
    return os.path.dirname(os.path.abspath(__file__))

2. 替换UI加载路径写法

把原有硬编码的相对路径写法,替换为通过根路径拼接的绝对路径:

# 原写法
# uic.loadUi(r"./BAJARANGBALI/Forms/MainWindow.ui", self)
# 新写法
ui_path = os.path.join(get_base_path(), "BAJARANGBALI", "Forms", "MainWindow.ui")
uic.loadUi(ui_path, self)

3. 配置打包附加资源规则

打开auto-py-to-exe工具,按以下步骤配置:

  • 找到「附加文件」板块,点击「添加文件夹」
  • 选择项目中存放UI文件的上层BAJARANGBALI文件夹
  • 弹出的「目标路径」输入框填写.,保证打包后资源的层级和开发时完全对应
  • 重新执行打包操作即可

补充说明

如果选择打包为单文件模式,运行时程序会自动将所有附加资源解压到临时目录,上述路径逻辑可正常适配,无需额外调整;如果选择打包为多目录模式,打包完成后BAJARANGBALI文件夹会和exe同目录,双击即可正常运行。

内容的提问来源于stack exchange,提问作者Bijaya Kumar Tiadi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:06:00