这可能是过去一年未回答的问题的轻微重复,但我希望我能提供更多信息并看到答案。
问题是,一旦代码进入PyQt5的循环,任何崩溃都不会导致回溯显示在控制台或我所知道的任何其他位置,但是如果只是从同一个程序运行,则会显示Traceback没有问题命令行使用与eclipse使用完全相同的命令。
在单独的计算机上干净安装所有列出的组件后,问题得到确认。
构建-ENV:
eclipse neon 4.6.3 - 64bit 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_())
是否有人知道会导致此行为的任何已知问题或配置选项?
答案 0 :(得分:2)
在互联网上进行了大量随机浏览,但最终找到了解决问题所需的代码,此处发布以供具有相同问题的其他人参考。当我终于找到它时显而易见。 ;)
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
希望这有助于其他人。