Python内核为第二轮PyQt5 GUI而死

Dan*_*ári 9 python ipython spyder anaconda pyqt5

  • 在Python 3.5.2中使用Spyder | Anaconda 4.2.0(64位)Windows软件包.qt:5.6.0
  • 首次运行时,GUI窗口按预期打开
  • 对于第二次运行,没有任何打开,并且接收内核死亡,重新启动日志消息.

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_()
Run Code Online (Sandbox Code Playgroud)

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')

Kernel died, restarting

Kernel died, restarting

Kernel died, restarting
Run Code Online (Sandbox Code Playgroud)

为什么内核为第二次运行而死,以及如何解决它?

(即使使用#sys.exit(app.exec_())作为最后一行,也要这样做.)

小智 12

这段代码解决了这个问题,感谢提示.

app = QtCore.QCoreApplication.instance()
if app is None:
    app = QtWidgets.QApplication(sys.argv)
Run Code Online (Sandbox Code Playgroud)