Python Plotly Dash运行无报错但挂起卡住无响应问题咨询
Spyder环境运行Dash示例程序长时间卡住无报错排查
- 运行环境:本地Python环境,
SpyderIDE - 前置操作:已完成dash相关依赖安装、重启IDE,下载入门示例代码及配套输入数据文件后启动运行
- 故障现象:程序内核仅输出警告信息,无报错内容,运行超过10分钟停在同一状态无后续进展;同份示例代码在教程演示中仅需2秒即可完成启动输出结果
- 运行状态截图:

常见诱因及对应解决方法
1. 误判程序状态:Dash启动Web服务后不会主动弹出结果页
Dash是Web应用框架,代码执行到服务启动步骤后会在后台挂起提供Web服务,不会像普通脚本一样执行完输出结果后退出,很多新手会误以为程序卡住。
- 排查操作:翻找控制台的历史输出,不要被警告信息干扰,找到类似
Dash is running on http://127.0.0.1:8050/的提示,手动打开浏览器输入该地址就能访问应用页面。 - 优化配置:Spyder环境下启动服务时把运行参数改为
app.run_server(debug=True, use_reloader=False),可设置启动后自动打开浏览器,同时关闭不兼容的自动重载功能。
2. 默认端口被占用导致服务挂起
Dash默认使用8050端口提供服务,如果该端口被其他程序占用,部分旧版本Dash不会直接抛出端口占用报错,会一直等待端口释放,表现为无响应。
- 解决方法:启动时指定其他空闲端口,修改启动代码为
app.run_server(port=8060, use_reloader=False)即可;也可以先查找关闭占用8050端口的进程后再运行。
3. 工作目录不匹配导致数据读取阻塞
如果数据文件没有放在Spyder当前的工作目录下,部分文件读取逻辑不会直接抛出路径错误,会进入阻塞状态。
- 排查操作:在代码最开头加两行代码打印当前工作目录:
import os print(os.getcwd())
确认打印出的目录下是否存在所需的输入数据文件,如果不存在,要么把数据文件移到对应目录,要么把代码里的文件读取路径改成绝对路径。
4. 依赖版本不兼容
如果安装的dash、flask、plotly版本不匹配,也会出现服务启动无响应无报错的问题。
- 解决方法:执行
pip install dash --upgrade升级dash到最新稳定版,会自动安装适配版本的关联依赖,升级完成后重启Spyder再运行代码即可。
关键提示:Spyder的IPython内核不支持Dash debug模式的自动重载机制,只要在Spyder里运行Dash程序,必须在
run_server()参数里加use_reloader=False,否则会触发重复启动子进程的问题,直接导致程序卡住。
内容的提问来源于stack exchange,提问作者Mainland
相关产品推荐
相关产品推荐

