解決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)核給停止了,所以就導(dǎo)致了重啟。
改成
sys.exit(app.exec_())
這樣再運行結(jié)束程序是只會結(jié)束本程序 不會終止內(nèi)核 。問題解決。
但是這樣也引入了一個新的問題
An exception has occurred, use %tb to see the full traceback
因為這個程序直接調(diào)用sys.exit直接終止的 。不過影響不大。
總結(jié):這兩個錯誤都是在IPython交互環(huán)境下才會報錯,腳本運行時不會報錯。如果對報錯介意的話 ,就還是使用命令行執(zhí)行程序吧。
以上這篇解決jupyter運行pyqt代碼內(nèi)核重啟的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python Pygame實戰(zhàn)之超級炸彈人游戲的實現(xiàn)
如今的玩家們在無聊的時候會玩些什么游戲呢?王者還是吃雞是最多的選擇。但在80、90年代的時候多是一些很簡單的游戲:《超級瑪麗》、《魂斗羅》等。本文將利用Pygame制作另一個經(jīng)典游戲—炸彈人,感興趣的可以了解一下2022-03-03
解決django跨域的問題小結(jié)(Hbuilder X)
使用Django開發(fā)時,可能會遇到跨域問題,尤其是當(dāng)后端與HbuilderX開發(fā)的前端結(jié)合使用時,解決此問題的關(guān)鍵步驟包括安裝django-cors-headers庫,并在Django的settings.py中進行相應(yīng)配置,本文給大家介紹解決django跨域的問題小結(jié),感興趣的朋友一起看看吧2024-10-10

