You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook运行DearPyGui代码时内核崩溃求助

问题描述
  • 已在Python 3.10虚拟环境中安装DearPyGui 1.8.0,尝试降级至1.7.3后问题依旧
  • 运行官方入门代码时,Jupyter Notebook内核崩溃,提示:Documents ... /DearPyGui/Studies&Tries.ipynb对应的内核似乎已崩溃,将自动重启。
  • 相同代码通过Python命令行((dpg_py310) amen@ubu:~$ python dpg01.py)运行正常

涉事代码:

import dearpygui.dearpygui as dpg

dpg.create_context()
dpg.create_viewport(title='Custom Title', width=600, height=300)

with dpg.window(label="Example Window"):
    dpg.add_text("Hello, world")
    dpg.add_button(label="Save")
    dpg.add_input_text(label="string", default_value="Quick brown fox")
    dpg.add_slider_float(label="float", default_value=0.273, max_value=1)

dpg.setup_dearpygui()
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()
解决方案

DearPyGui的阻塞式事件循环会与Jupyter Notebook的内核事件循环冲突,导致内核崩溃。以下是两种可行的解决方式:

方法1:通过子进程运行GUI代码

启动独立Python进程运行DearPyGui代码,彻底隔离Notebook内核与GUI事件循环:

import subprocess
import sys

# 替换为你的GUI脚本路径
script_path = "dpg01.py"
subprocess.Popen([sys.executable, script_path])

执行后GUI窗口会在独立进程中启动,不会影响Notebook内核的正常运行。

方法2:改用非阻塞事件循环

修改代码使用非阻塞的帧渲染模式,减少与Notebook内核的冲突(稳定性略逊于方法1):

import dearpygui.dearpygui as dpg
import time

dpg.create_context()
dpg.create_viewport(title='Custom Title', width=600, height=300)

with dpg.window(label="Example Window"):
    dpg.add_text("Hello, world")
    dpg.add_button(label="Save")
    dpg.add_input_text(label="string", default_value="Quick brown fox")
    dpg.add_slider_float(label="float", default_value=0.273, max_value=1)

dpg.setup_dearpygui()
dpg.show_viewport()

# 手动控制非阻塞事件循环
while dpg.is_dearpygui_running():
    dpg.render_dearpygui_frame()
    time.sleep(0.01)

dpg.destroy_context()

内容的提问来源于stack exchange,提问作者Amen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:55:34