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

使用auto-py-to-exe打包PyQt5项目时出现plotting.ui找不到异常

解决PyQt5项目打包exe后找不到plotting.ui的问题

问题原因

  1. 加载UI文件时未使用绝对路径,打包后exe运行的工作目录与原脚本目录不一致,导致无法找到相对路径下的ui文件。
  2. auto-py-to-exe打包时未将ui文件、images等资源文件一同打包进exe或输出目录。
  3. 代码与错误提示存在拼写差异:错误提示找不到plotting.ui,但代码里写的是ploting.ui,需确认实际文件名是否一致。

修复步骤

1. 修正代码中的UI加载路径

利用已获取的scriptDir拼接绝对路径,替换原相对路径加载方式:

# 原代码
# uic.loadUi('ploting.ui',self)
# 修改为
uic.loadUi(os.path.join(scriptDir, 'ploting.ui'), self)

这样无论程序在哪个目录运行,都能精准定位到UI文件。

2. 配置auto-py-to-exe包含资源文件

打开auto-py-to-exe,在**"Additional Files"**区域操作:

  • 点击Add Files,选择你的ploting.ui文件(注意匹配实际文件名)
  • 点击Add Folder,选择images文件夹
  • 确保输出目录中会同步复制这些资源文件。

3. 可选:将UI文件转为Python代码(消除外部依赖)

如果不想打包外部资源文件,可使用pyuic5工具将ui文件转为Python代码:
打开命令行,进入UI文件所在目录执行:

pyuic5 ploting.ui -o ploting_ui.py

然后在原脚本中替换加载逻辑:

# 替换from PyQt5 import uic
from ploting_ui import Ui_MainWindow  # 类名以实际生成的代码为准

class graph_kf_data(QMainWindow) :
    def __init__(self):
        super(graph_kf_data, self).__init__()
        # 替换uic.loadUi
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        # 后续控件引用改为self.ui.comboBox、self.ui.frame_4等格式

这种方式彻底消除对外部UI文件的依赖,打包更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:25:38