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

如何在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手动做端口转发:

  1. 先装ngrok:
!pip install pyngrok
  1. 加一段代码生成公共链接:
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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:08:10