在Colab中运行Streamlit时链接无法访问的解决办法咨询
Colab中Streamlit链接无法访问的解决办法
问题根源
你拿到的http://172.28.0.12:8501/是Colab虚拟机的内部私有IP,这个地址只能在虚拟机本地打通,外部浏览器根本连不上——这是Colab的网络隔离机制导致的,不是代码出问题了。
两种可行的解决方法
方法1:用ngrok做端口映射(最常用)
- 先安装pyngrok库:
!pip install pyngrok
- 导入并设置ngrok的认证令牌(去ngrok官网注册就能拿到免费令牌):
from pyngrok import ngrok # 把下面的字符串换成你自己的ngrok认证令牌 ngrok.set_auth_token("你的NGROK_TOKEN")
- 启动Streamlit并生成公网链接:
# 后台启动你的Streamlit应用 !streamlit run 你的应用文件名.py & # 给8501端口创建公网隧道 public_link = ngrok.connect(8501) print("可直接访问的公网链接:", public_link)
运行后会输出一个https://xxx.ngrok.io格式的链接,复制到浏览器就能打开你的Streamlit应用了。
方法2:用Colab自带的端口转发(不用额外工具)
- 启动Streamlit时绑定所有IP:
!streamlit run 你的应用文件名.py --server.port 8501 --server.address 0.0.0.0
- 打开Colab顶部菜单栏的「代码执行程序」→「查看运行时日志」,在日志里找
External URL:开头的链接,复制这个链接就能访问。
额外提醒
- 确保你的Streamlit代码没有在启动阶段就卡住(比如开头写了无限循环),不然应用没法正常启动。
- ngrok免费版的链接8小时后会失效,需要重新运行代码生成新链接。
- 检查Colab虚拟机的资源使用情况,要是内存或CPU占满了,也可能导致Streamlit启动异常。
内容的提问来源于stack exchange,提问作者Sheeza Shabbir
相关产品推荐
相关产品推荐

