Spyder+Python3.5-如何调试内核死机,重新启动?

2024-04-25 22:46:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我第一次致力于在PyQt5中实现一个非常简单的GUI,它嵌入一个matplotlib图和几个用于交互的按钮。

我真的不知道如何使用类,所以我犯了很多错误,即即使功能很简单,我也必须在小的更正和验证之间迭代很多次。

但是,由于某些原因,我想调试,整个过程变得非常缓慢,因为在任何其他尝试中,python内核都会死掉,需要重新启动(都是自动完成的)多次。

也就是说,每次我尝试一件应该持续5秒的东西,我都会花上一分钟。

有人知道在哪里可以找到导致这些不断死亡/重生的循环的原因吗?

我使用spyder已经有一段时间了,而且我以前从未经历过这种行为,所以我被吸引到认为这可能与PyQt有关,但这就是我能走多远。


Tags: 功能matplotlib过程错误原因gui按钮内核
2条回答

我也遇到过类似的问题,发现我的应用程序只有在Spyder中的图形设置设置为inline时才能工作。这可以在工具->;首选项->;IPython控制台->;图形中完成,现在将后端更改为内联。

希望这有帮助。

跟踪此问题here

您可以在这里了解所有的细节,但是简单地说,当从内部运行spyder-它本身就是一个QApplication时,主循环应该如下:

if __name__ == '__main__':
import sys
from PyQt5 import QtWidgets
fig1 = Figure()
if not QtWidgets.QApplication.instance():
    app = QtWidgets.QApplication(sys.argv)
else:
    app = QtWidgets.QApplication.instance() 
main = Main()
main.addmpl(fig1)
main.show()
sys.exit(app.exec_())

检查if/then是否存在QApplication可以避免分割错误,如here所述,如果一个人试图同时启动多个实例,就会发生分割错误

相关问题 更多 >