Streamlit Cloud部署应用时遭遇ModuleNotFoundError: No module named 'joblib'问题求助
Hello Stack Overflow社区的朋友们,我最近在把一个Streamlit应用部署到Streamlit Cloud时,遇到了一个顽固的ModuleNotFoundError,希望能得到大家的帮助!
问题核心
我的Streamlit应用在Streamlit Cloud上部署失败,报错提示找不到joblib模块,具体错误信息如下:
ModuleNotFoundError: This app has encountered an error. The original error message is redacted to prevent data leaks. Full error details have been recorded in the logs (if you're on Streamlit Cloud, click on 'Manage app' in the lower right of your app).
追踪栈信息指向app.py的第3行导入语句:
File "/mount/src/beverageclassifier/app.py", line 3, in <module> import joblib
上下文细节
- 我的
app.py第3行确实存在import joblib语句 - 该应用在本地机器上运行完全正常,joblib已正确安装在项目虚拟环境中,可正常调用
requirements.txt配置情况
我已经确保requirements.txt文件存放在GitHub仓库的根目录(与app.py同路径),并且明确列出了joblib及其精确版本(版本号来自本地pip freeze输出),具体条目为:joblib==1.4.2
目前requirements.txt的完整内容如下:
joblib==1.4.2 numpy==1.26.4 pandas==2.2.2 scikit-learn==1.5.1 streamlit==1.47.1
已采取的排查步骤
- ✅ 本地执行
pip freeze确认joblib已安装,且本地启动应用无任何问题 - ✅ 验证
requirements.txt确实位于仓库根目录,路径无误 - ✅ 确认joblib带精确版本号清晰列在
requirements.txt中
我的困惑与求助
明明本地运行正常,requirements.txt也按要求配置了,为什么Streamlit Cloud的构建环境还是找不到joblib?会不会是以下原因导致的:
- Streamlit Cloud的依赖解析机制有特殊的注意事项?
- 不同包之间存在未被发现的冲突?
- 部署流程中我遗漏了某个关键步骤?
希望有经验的朋友能给我一些指导或排查建议,非常感谢大家的时间和帮助!
内容来源于stack exchange

