Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python kernel dies for second run of PyQt5 GUI

  • 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.)

like image 240
Daniel Hári Avatar asked Oct 17 '16 19:10

Daniel Hári


2 Answers

This code fixed the problem, thanks for the hint.

app = QtCore.QCoreApplication.instance()
if app is None:
    app = QtWidgets.QApplication(sys.argv)
like image 190
Corky Benson Avatar answered Oct 21 '22 10:10

Corky Benson


This works better for the kernel died, restarting error.

from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.QtCore import QCoreApplication

#app = QApplication(sys.argv)
app = QCoreApplication.instance()
if app is None:
    app = QApplication(sys.argv)
like image 4
badsaah6 Avatar answered Oct 21 '22 09:10

badsaah6