解決jupyter執行pyqt程式碼核心重啟的問題
阿新 • • 發佈:2020-04-17
在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編寫的,python同時只能執行一個核心。在上述程式碼最後一行一下子把核心給停止了,所以就導致了重啟。
改成
sys.exit(app.exec_())
這樣再執行結束程式是隻會結束本程式 不會終止核心 。問題解決。
但是這樣也引入了一個新的問題
An exception has occurred,use %tb to see the full traceback
因為這個程式直接呼叫sys.exit直接終止的 。不過影響不大。
總結:這兩個錯誤都是在IPython互動環境下才會報錯,指令碼執行時不會報錯。如果對報錯介意的話 ,就還是使用命令列執行程式吧。
以上這篇解決jupyter執行pyqt程式碼核心重啟的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。