Yitian笔记
全栈开发8 分钟阅读

把 YOLOv8 封装成桌面应用:PyQt5 踩坑记录

线程、信号与推理耗时的处理方式,以及打包时最容易遗漏的几个依赖。

界面线程不能被推理阻塞

推理放进 QThread,通过信号回到主线程更新画面。直接在按钮回调里跑 model.predict 会出现「窗口未响应」。

python
class Worker(QThread):
    finished = pyqtSignal(object)

    def run(self):
        self.finished.emit(model.predict(self.source))

打包时最容易漏的东西

  • PyTorch 的 DLL 依赖,单独用 hidden-import 补上
  • 权重文件要随包分发,路径用 sys._MEIPASS 兜底
  • 首次启动时加载模型会卡几秒,先给一个进度提示

留下你的想法

评论尚未接入。这是一个纯静态站点,评论交给 Twikoo:在后台「站点 → 站点设置 → 评论 → Twikoo 服务端地址」里填上部署好的 envId,这里就会显示评论区;审核、删除、回复都在 Twikoo 自带的管理面板里做。

搜索笔记