在eclipse(Pydev)中的pyqt5代码中遇到异常时缺少回溯 [英] Traceback missing when exception encountered in pyqt5 Code in eclipse(pydev)

查看:0
本文介绍了在eclipse(Pydev)中的pyqt5代码中遇到异常时缺少回溯的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这可能是对过去一年未回答的问题的轻微重复,但我希望我能提供更多信息,并看到它得到回答。

问题是,一旦代码进入到PyQt5的循环中,任何崩溃都不会导致回溯显示在控制台或我所知道的任何其他地方,但是,如果相同的程序只是从命令行使用与eclipse使用的完全相同的命令运行,回溯就会毫无问题地显示出来。

在单独的计算机上全新安装所有列出的组件后确认了问题。

构建环境:
ECLIPSE NEON 4.6.3-64位Java
PYDEV 5.8
Python 3.6.1 64或32位版本
PyQt 5.8.2-通过PIP3安装

这是一个演示该问题的完整微程序,如果我从命令行运行它并单击按钮,我会得到一个回溯,但如果该程序正在运行,并从eclipse中按下按钮,我就得不到一个回溯。

from PyQt5 import QtWidgets
import sys

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.btn = QtWidgets.QPushButton('text', self)
        self.btn.clicked.connect(self.handleButton)

    def handleButton(self):
        error_trigger


if __name__ == '__main__':
    print ("Start")
    app = QtWidgets.QApplication(sys.argv)
    #error_trigger
    myapp = MainWindow()
    myapp.show()
    sys.exit(app.exec_())

是否有人知道会导致此行为的任何已知问题或配置选项?

推荐答案

它在互联网上随机浏览了很多次,但最终找到了解决该问题所需的代码,这里发布的代码供有相同问题的其他人参考。当我最终找到它的时候很明显。;)

from PyQt5 import QtCore
import traceback, sys


if QtCore.QT_VERSION >= 0x50501:
    def excepthook(type_, value, traceback_):
        traceback.print_exception(type_, value, traceback_)
        QtCore.qFatal('')
sys.excepthook = excepthook

希望这能帮助他人。

这篇关于在eclipse(Pydev)中的pyqt5代码中遇到异常时缺少回溯的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆