1. 程式人生 > 程式設計 >解決jupyter執行pyqt程式碼核心重啟的問題

解決jupyter執行pyqt程式碼核心重啟的問題

在jupyter notebook或者是 Qtconsole下編譯執行一個簡單的pyqt程式,總是報錯:

The kernel appears to have died. It will restart automatically.

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
app = QApplication(sys.argv)
window = QWidget();
window.show()
app.exec_()

解決jupyter執行pyqt程式碼核心重啟的問題

在網上找了半天原因,終於在一個小角落發現了問題所在。現在記下來。

這是因為jupyter本身也是用pyqt編寫的,python同時只能執行一個核心。在上述程式碼最後一行一下子把核心給停止了,所以就導致了重啟。

改成

sys.exit(app.exec_())

這樣再執行結束程式是隻會結束本程式 不會終止核心 。問題解決。

但是這樣也引入了一個新的問題

An exception has occurred,use %tb to see the full traceback

因為這個程式直接呼叫sys.exit直接終止的 。不過影響不大。

總結:這兩個錯誤都是在IPython互動環境下才會報錯,指令碼執行時不會報錯。如果對報錯介意的話 ,就還是使用命令列執行程式吧。

以上這篇解決jupyter執行pyqt程式碼核心重啟的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。