解決jupyter運行pyqt代碼內(nèi)核重啟的問題
在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_()

在網(wǎng)上找了半天原因,終于在一個小角落發(fā)現(xiàn)了問題所在?,F(xiàn)在記下來。
這是因為jupyter本身也是用pyqt編寫的,python同時只能運行一個內(nèi)核。在上述代碼最后一行一下子把內(nèi)核給停止了,所以就導致了重啟。
改成
sys.exit(app.exec_())
這樣再運行結束程序是只會結束本程序 不會終止內(nèi)核 。問題解決。
但是這樣也引入了一個新的問題
An exception has occurred, use %tb to see the full traceback
因為這個程序直接調用sys.exit直接終止的 。不過影響不大。
總結:這兩個錯誤都是在IPython交互環(huán)境下才會報錯,腳本運行時不會報錯。如果對報錯介意的話 ,就還是使用命令行執(zhí)行程序吧。
以上這篇解決jupyter運行pyqt代碼內(nèi)核重啟的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python實現(xiàn)批量將MP3音頻轉為WAV格式詳解
這篇文章主要介紹了通過Python實現(xiàn)將MP3音頻轉為WAV格式的方法,文中的示例代碼講解詳細,對我們學習Python有一定幫助,感興趣的可以了解一下2021-12-12
深入解析Python中的__builtins__內(nèi)建對象
__builtins__ 是內(nèi)建模塊__builtin__中的對象,使用Python中的內(nèi)建函數(shù)時會通過__builtins__引導,這里我們就來深入解析Python中的__builtins__內(nèi)建對象,需要的朋友可以參考下2016-06-06

