如何在Google Colab中使用plotly-dash与jupyter-plotly-dash?解决连接问题
在Google Colab中使用Plotly Dash与jupyter-dash的实操指南
我之前在Colab里折腾过这俩工具,刚好碰到过你说的「localhost拒绝连接」的问题,给你一步步捋清楚怎么操作:
第一步:先装对依赖
Colab默认没带这些库,先在代码单元格里运行安装命令——注意哦,你说的jupyter-plotly-dash现在官方已经更名为jupyter-dash了,直接装最新版就行:
!pip install plotly dash jupyter-dash
基础用法:用JupyterDash适配Colab环境
普通的dash.Dash是给本地环境设计的,在Colab里用会有连接问题,所以一定要用jupyter-dash提供的JupyterDash类,它专门适配笔记本(包括Colab这种云端笔记本)。
解决「localhost拒绝连接」的核心操作
Colab是云端服务器,你本地浏览器的localhost和Colab的localhost不是一回事,所以得改两个关键参数:绑定0.0.0.0允许外部访问,再配合端口转发生成可访问的公共链接。
完整示例代码
直接跑这个代码就能看到效果:
from jupyter_dash import JupyterDash import dash_core_components as dcc import dash_html_components as html # 用JupyterDash初始化app,而不是普通的dash.Dash app = JupyterDash(__name__) # 随便写个简单布局,你可以换成自己的业务逻辑 app.layout = html.Div([ html.H1("Colab Dash 测试页面"), dcc.Graph( figure={ 'data': [ {'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': '数据组A'}, {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': '数据组B'}, ], 'layout': {'title': '简单柱状图'} } ) ]) # 运行app的关键:指定mode为external,host为0.0.0.0 if __name__ == '__main__': app.run_server(mode='external', host='0.0.0.0', port=8050)
获取可访问的公共链接
运行上面的代码后,Colab会输出一个类似http://127.0.0.1:8050的链接,但这个是Colab内部的,你点不开。这时候看输出框的右侧,会有个「External URL」的选项,点它就能得到一个可以在本地浏览器打开的公共链接了。
如果Colab自带的转发不好用,还可以用ngrok手动做端口转发:
- 先装ngrok:
!pip install pyngrok
- 加一段代码生成公共链接:
from pyngrok import ngrok # 把8050端口转发成公共URL public_url = ngrok.connect(8050) print("你的Dash app可访问链接:", public_url)
运行后复制输出的链接到浏览器就能打开了。
几个注意点
- Colab的运行时如果断开(比如长时间不用),链接会失效,得重新跑代码。
- 不要在Colab里长时间挂着Dash app,容易触发资源回收机制,导致运行时被关掉。
- 如果你之前用的是旧版
jupyter-plotly-dash,建议直接换成jupyter-dash,官方已经停止维护旧版本了,新版功能更全也更稳定。
内容的提问来源于stack exchange,提问作者moctarjallo
相关产品推荐
相关产品推荐

