![]() | 1 awsl2333 210 天前 ![]() 定时任务加个 try catch 看看 |
![]() | 2 lyxxxh2 210 天前 ![]() gui 不晓得。 我命令行闪退不怕,因为有错误信息,能否用命令来启动 gui? |
3 fds 210 天前 ![]() 没有错误日志? |
![]() | 4 qiuhang 210 天前 ![]() 这没法看,可能的错误原因很多。你别这样写,你把 safe_start 下面的 print(f"任务执行失败: {e}") 换成 import traceback; print(traceback.format_exc()) 看看具体调用栈相关报错信息。最好 timer_task 下面也包一层 try except 捕获多线程调用过程中可能存在的错误信息 |
![]() | 5 qiuhang 210 天前 ![]() @qiuhang 对了,你走命令行调用启动 gui 程序,错误信息就能打印到控制台。或者你调用 logging 写入到日志文件也行,甚至直接 open 个文件写入到文件都可以,总之你得看报错信息才能解决问题。 |
![]() | 6 araraloren 210 天前 ![]() 你的代码加密了,我看不懂 |
![]() | 7 GaGim 210 天前 ![]() 你要加个 try catch 捕捉一下异常,看是哪里线程冲突了,也不知道你用哪个 gui 库,贴个多线程代码根本看不出什么。 |
8 fenglirookie 210 天前 ![]() gpt 解决 |
![]() | 9 Ct5T66PVR1bW7b2z 210 天前 ![]() 如果是 pyqt 、pyside ,更新 gui 用 signal ,不然很容易退 |
![]() | 10 calvinHxx 210 天前 ![]() gui 程序闪退 无外乎几个场景: 1.工作线程操作视图, 视图只能在主线程(gui 线程) 操作 2.内存泄漏,地址访问错误(python 应该暂时不用管) 3.栈溢出,爆栈 4.内存爆了。 一个一个排查看看。大部分 gui 程序前三点问题居多。 |
![]() | 11 AccelerXu 210 天前 ![]() 多半是内存暴了 |
12 strickland3 210 天前 ![]() 把 max_workers 改小一点试试 |
![]() | 13 dajj 210 天前 ![]() import faulthandler faulthandler.enable() # enable faulththandler catchSIGSEGV , print system error 在入口文件加上这两行,要求输出致命错误 |
14 shuyouning32 OP 程序打包了 exe 没有搞 日志,新手刚入门 |
![]() | 15 iorilu 209 天前 肯定是多线程导致得 用 pyqt 或 pyside 这些东西, 如果要用多线程一定要用 pyqt 框架自带得 qthread 等东西 |
16 jackOff 190 天前 内存回收机制吧,主要是 python 会无视 pyqt 的底层 c++语法直接强制回收 qt 控件(有时候就是一个 paint 刷新就触发了,具体原因不明),所以语法上要特别注意必须显式声明每个对象的父类,我习惯上搞一个全局变量存放控件实例,这里建议你的线程池不使用 with 语法,改成声明一个对象:self.executor |