Dash 2.7.0在VS Code Notebook中用jupyter_mode参数报错求助
解决Dash 2.7.0在VS Code Notebook中使用
jupyter_mode="external"的报错问题 问题原因
Dash 2.7.0版本并未引入jupyter_mode参数,该参数是在后续版本(如2.9.0及以上)才被整合到app.run()方法中的。你当前调用app.run(jupyter_mode="external")时,这个参数会被直接传递给Flask的run_simple()函数,而Flask并不识别该参数,因此触发TypeError。
解决方案
方案1:升级Dash到支持jupyter_mode的版本
直接升级Dash到最新稳定版,即可使用官方文档中提到的jupyter_mode参数:
pip install --upgrade dash
升级后无需修改其他代码,直接运行app.run(jupyter_mode="external")即可在VS Code Notebook中启动外部Dash应用。
方案2:不升级版本,改用JupyterDash运行
如果需要保留Dash 2.7.0版本,可使用旧版的JupyterDash方式适配Notebook环境:
- 导入JupyterDash类(替代原Dash类)
- 修改应用初始化代码
- 使用
run_server()方法并指定mode="external"
修改后的核心代码片段如下:
# 替换原Dash导入为JupyterDash from dash import JupyterDash, html, DiskcacheManager, Input, Output, callback import dash_bootstrap_components as dbc # ... 其他代码保持不变 ... # 用JupyterDash初始化应用 app = JupyterDash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP], background_callback_manager=background_callback_manager) # ... 布局和回调函数保持不变 ... if __name__ == "__main__": # 用run_server指定external模式 app.run_server(mode="external")
或者你也可以全局设置默认模式,避免每次调用都指定:
from dash import JupyterDash JupyterDash.default_mode = "external" # ... 应用初始化代码 ... app.run_server()
内容的提问来源于stack exchange,提问作者roudan
相关产品推荐
相关产品推荐

