Streamlit Cloud部署MNIST模型遇streamlit-drawable-canvas模块缺失错误
解决Streamlit Cloud部署MNIST模型时的ModuleNotFoundError(streamlit_drawable_canvas)
针对你遇到的本地运行正常、部署后找不到streamlit_drawable_canvas模块的问题,可按以下步骤排查解决:
确认requirements.txt的有效性
- 确保文件放在GitHub仓库的根目录,而非子文件夹中,Streamlit Cloud只会读取根目录的依赖文件
- 打开requirements.txt,检查
streamlit-drawable-canvas==0.9.3是否拼写正确,无多余空格、注释干扰。本地执行pip install -r requirements.txt验证依赖安装是否正常,排除文件本身错误
查看Streamlit Cloud构建日志
- 部署过程中进入Streamlit Cloud的应用页面,点击右上角"Manage app" -> "Logs",搜索
streamlit-drawable-canvas,查看是否存在安装失败的提示(如网络超时、版本冲突) - 若安装失败,尝试降低包版本,比如将requirements.txt中的版本改为
streamlit-drawable-canvas==0.8.2,部分旧版本与Streamlit Cloud环境兼容性更好
- 部署过程中进入Streamlit Cloud的应用页面,点击右上角"Manage app" -> "Logs",搜索
检查代码导入语句
- 确认代码中的导入语句为
from streamlit_drawable_canvas import st_canvas,避免将下划线误写为连字符,或存在隐形字符导致识别失败
- 确认代码中的导入语句为
清理缓存重新部署
- 在Streamlit Cloud的应用管理页面,选择"Advanced settings",点击"Clear cache and redeploy",强制重新拉取代码并安装所有依赖,避免旧缓存影响
指定Python版本
- 若本地与Cloud环境Python版本差异过大,在仓库根目录创建
runtime.txt文件,写入本地使用的Python版本(如python-3.9),确保依赖安装环境一致
- 若本地与Cloud环境Python版本差异过大,在仓库根目录创建
内容的提问来源于stack exchange,提问作者tarun kashyap
相关产品推荐
相关产品推荐

