[PYTHON] So lösen Sie das Problem, dass beim Ausführen des PyQt-Systems mit Jupyter oder Spyder IDE häufig ein Neustart des Kernels auftritt

Auch beim Versuch und Fehler mit GUI-Programmen wie PyQt und PyQtGraph Ich benutze oft Jupiter usw., weil es bequem ist. Es gibt einen der nervigsten Punkte.

Wenn ich ein PyQt-GUI-Programm mehrmals ausführe,

** Der Kernel wird definitiv sterben. ** ** **

Ich habe endlich eine Problemumgehung gefunden.

Es war egal, ob sys.exit () am Ende vorhanden war.

Dies → sys.exit (app.exec_ ())

Ich dachte, das lag daran, dass sys.exit seltsam endete, aber es war unschuldig. Das Vorhandensein oder Fehlen von sys.exit () am Ende war irrelevant (zumindest in jupyter). (Spyder ist unbestätigt)

Überschreiben Sie die App einfach kurz zuvor mit etwas anderem! (Nur PyQt4. Kann nicht mit PySide verwendet werden.)

app = 0 # Diese Zeile hinzufügen app = QtGui.QApplication(sys.argv)

Mit diesem allein, auch wenn Sie den gleichen Code mit jupyter viele Male ausführen, Der nervige Kernel-Neustart ist weg! Yay!

Referenz https://www.reddit.com/r/learnpython/comments/45h05k/solved_kernel_crashing_when_closing_gui_spyder/


01.09.2016 Nachtrag

Ich könnte es mit Mojaies Methode im Kommentar machen. Egal wie Sie darüber denken, diese Methode ist richtig.

app = QtGui.QApplication.instance()
if app is None:
    app = QtGui.QApplication(()) 

Außerdem läuft PyQt4 lautlos und der Kernel stirbt, während Ich war schockiert, dass PySide die Erstellung mehrerer QApplication-Instanzen im Voraus verhindert und einen Laufzeitfehler zurückgegeben hat. Es ist der Unterschied zwischen PyQt4 und PySide. .. ..

Außerdem kann app = 0 nicht mit PySide verwendet werden, da dies einen Laufzeitfehler verursacht. app = 0 ist eine Magie für PyQt4 ...

Recommended Posts

So lösen Sie das Problem, dass beim Ausführen des PyQt-Systems mit Jupyter oder Spyder IDE häufig ein Neustart des Kernels auftritt
[Python] Lösung für das Problem, dass Elemente beim Kopieren einer Liste verknüpft werden
Suche nach einer Lösung für das N-Queen-Problem mit einem genetischen Algorithmus (2)
Die übliche Art, einen Kernel mit Jupyter Notebook hinzuzufügen
Verbinden Sie den Jupyter Notebook-Kernel mit aktiviertem Jupytext mit Spyder
Suche nach einer Lösung für das N-Queen-Problem mit einem genetischen Algorithmus (1)
Lösung für das Problem, dass der Build bei der Installation von OpenCV (PEP517) nicht beendet wird
Eine Geschichte, die fehlgeschlagen ist, als versucht wurde, das Suffix mit rstrip aus einem String zu entfernen
Eine Lösung für das Problem, dass Dateien mit [und] nicht in glob.glob () aufgeführt sind
Problemumgehung für Pandas 1.1.0 und höher Build-Fehler unter Alpine Linux
Vorübergehende Lösung für das Problem, dass die von PyInstaller erstellte Exe-Datei von AVAST oder AVG als Trojaner verwechselt wird
Eine Geschichte über den Umgang mit dem CORS-Problem
Lösung für das Problem, dass die Anzeige beschädigt ist, wenn der Befehl .exe in der while-Schleife in wsl2 enthalten ist
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird