Python kernel dies for second run of PyQt5 GUI(Python 内核因 PyQt5 GUI 的第二次运行而死机)
本文介绍了Python 内核因 PyQt5 GUI 的第二次运行而死机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
- 在 Python 3.5.2 |Anaconda 4.2.0(64 位)Windows 软件包中使用 Spyder.qt:5.6.0
- 首次运行时,GUI 窗口会按预期打开
- 第二次运行时,没有打开任何东西,并且收到 Kernel dead, restarting 日志消息.
gui1.py:
<块引用>import sys from PyQt5.QtWidgets import QApplication, QWidget应用程序 = QApplication(sys.argv)w = QWidget()w.resize(250,150) w.show()#sys.exit(app.exec_())app.exec_()
IPhython 日志:
runfile('F:/work/ws_python/TestProj1/gui1/gui1.py', wdir='F:/work/ws_python/TestProj1/gui1')runfile('F:/work/ws_python/TestProj1/gui1/gui1.py', wdir='F:/work/ws_python/TestProj1/gui1')内核死机,重启内核死机,重启内核死机,重启
为什么内核在第二次运行时死机以及如何解决?
<块引用>(即使在最后一行使用 #sys.exit(app.exec_()) 也是如此.)
解决方案
此代码解决了问题,感谢提示.
app = QtCore.QCoreApplication.instance()如果应用程序是无:应用程序 = QtWidgets.QApplication(sys.argv)
- Using Spyder in Python 3.5.2 |Anaconda 4.2.0 (64-bit) Windows package. qt: 5.6.0
- For first run, GUI window opens as expected
- For 2nd run, nothing opens, and receiving Kernel died, restarting log message.
gui1.py:
import sys from PyQt5.QtWidgets import QApplication, QWidget app = QApplication(sys.argv) w = QWidget() w.resize(250,150) w.show() #sys.exit(app.exec_()) app.exec_()
IPhython log:
runfile('F:/work/ws_python/TestProj1/gui1/gui1.py', wdir='F:/work/ws_python/TestProj1/gui1')
runfile('F:/work/ws_python/TestProj1/gui1/gui1.py', wdir='F:/work/ws_python/TestProj1/gui1')
Kernel died, restarting
Kernel died, restarting
Kernel died, restarting
Why kernel dies for 2nd run and how to solve it?
(Doing the same even using #sys.exit(app.exec_()) as last line.)
解决方案
This code fixed the problem, thanks for the hint.
app = QtCore.QCoreApplication.instance()
if app is None:
app = QtWidgets.QApplication(sys.argv)
这篇关于Python 内核因 PyQt5 GUI 的第二次运行而死机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Python 内核因 PyQt5 GUI 的第二次运行而死机


猜你喜欢
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- 沿轴计算直方图 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- 如何将一个类的函数分成多个文件? 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- padding='same' 转换为 PyTorch padding=# 2022-01-01