部署Streamlit应用至Streamlit Cloud时pyodbc模块缺失错误求助
部署问题分析与解决方案
核心问题
你的requirements.txt和packages.txt格式不符合Streamlit Cloud的解析要求,导致依赖未被正确安装。
具体问题点
- requirements.txt格式错误:你用了带
-的列表格式,而Streamlit Cloud要求该文件每行仅包含一个包名+版本号,不能有前缀符号。这种非标准格式会让部署脚本无法识别pyodbc依赖,从而出现ModuleNotFoundError。 - packages.txt格式错误:同样使用了带
-的列表格式,系统级依赖文件也需要每行一个依赖名称,不能有前缀符号。
修复步骤
1. 修正requirements.txt
将文件内容改为纯行式结构,删除所有-:
networkx==3.0 streamlit==1.11.1 pyodbc==4.0.30 pandas==1.0.5 numpy==1.22.0 matplotlib==3.2.2
2. 修正packages.txt
同样删除-,改为:
unixodbc-dev
3. 额外检查
- 确保两个文件都放在Git仓库的根目录下,Streamlit Cloud不会读取子文件夹中的依赖配置文件。
- 若问题仍存在,可以尝试移除
pyodbc的版本号,让系统自动安装适配Cloud环境的版本:pyodbc
内容的提问来源于stack exchange,提问作者Ouakrat
相关产品推荐
相关产品推荐

