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

Streamlit应用持续显示‘Please wait...’且终端抛出TypeError: Protocols cannot be instantiated错误的技术求助

解决Streamlit启动卡顿(显示“Please wait...”)并报“Protocols cannot be instantiated”错误

我之前也碰到过一模一样的问题,直接给你可行的解决步骤和原因分析:

快速修复步骤

  • 降级Tornado到兼容版本:这个错误的核心是Tornado新版本和Python 3.9的typing模块不兼容,执行下面的命令安装经过验证的兼容版本:
    pip install tornado==6.1
    
  • 重启应用:安装完成后,关闭当前的Streamlit进程,重新运行streamlit run app.py,界面应该就能正常加载了。

错误原因详解

你看到的TypeError: Protocols cannot be instantiated,是因为Tornado的新版本(比如6.2及以上)在Python 3.9环境中,内部代码错误地尝试实例化了typing.Protocol类。根据Python的类型规范,Protocol是用来定义接口协议的,本身不能被直接实例化。

Python 3.9的typing模块对Protocol的实现和后续Python版本有差异,而Tornado的新版本没有做好向下兼容,所以降级到Tornado 6.1就能解决这个冲突——这个版本在Python 3.9环境下是完全兼容的。

额外排查建议

  • 确保你是在项目的虚拟环境(venv)里执行的安装命令,避免影响全局Python环境的包版本
  • 如果降级后还是有问题,可以尝试删除项目根目录下的.streamlit缓存文件夹,清除旧缓存后再重启应用

内容的提问来源于stack exchange,提问作者gunjan verma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 17:47:39