【发布时间】:2017-11-10 20:59:05
【问题描述】:
这可能是对过去一个未回答的问题的轻微重复,但我希望我能提供更多信息并看到它得到解答。
问题是,一旦代码进入 PyQt5 的循环,任何崩溃都无法导致回溯显示在控制台或我知道的其他任何地方,但是如果只是从命令行使用与 eclipse 使用的完全相同的命令。
在单独的计算机上全新安装所有列出的组件后确认问题。
构建环境:
日食霓虹灯 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_())
是否有人知道会导致此行为的任何已知问题或配置选项?
【问题讨论】:
-
如果 PyQt 中止,这可能是不显示输出的原因。
-
这似乎是对正在发生的事情的合理解释,但没有提供有关如何解决或解决问题的任何解释。如果没有人对如何解决它有任何想法,我想我最好将整个问题作为 PyDev 中的错误提交。
-
对我来说绝对看起来像一个 PyDev/Eclipse 错误,是的。您可以设置
sys.excepthook以这种方式处理异常,但由于 PyQt 不能在 C++ 函数中中止,您可能会遇到未定义的行为。见pyqt.sourceforge.net/Docs/PyQt5/incompatibilities.html
标签: python eclipse pydev pyqt5