You need to enable JavaScript to run this app. Python 3.8.5环境下Heroku部署Streamlit应用报No module named报错
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.8.5环境下Heroku部署Streamlit应用报No module named报错

Heroku部署Streamlit模块缺失报错解决方案
  • 核查requirements.txt存放路径:必须放置在项目根目录,与Procfile、主程序文件site.py同级,不得存放于任意子文件夹下。Heroku的Python build流程仅读取根目录下的依赖声明文件,子目录内的同名文件不会被识别。
  • 核查依赖声明文件优先级:确认项目根目录无Pipfile、pyproject.toml、poetry.lock等其他依赖声明文件。Heroku的Python build流程会优先识别Pipenv、Poetry等工具的配置文件,自动忽略requirements.txt,若存在这类文件,要么删除,要么在对应配置中补充全部所需依赖。
  • 核查requirements.txt的内容与提交状态:
    • 确认文件未被.gitignore规则匹配,本地修改完成后已完整推送到代码仓库,可直接在仓库文件列表中查看该文件的完整内容
    • 确认文件内所有依赖条目无前缀多余空格、无格式错误,完全遵循包名==版本号的单行书写规范,无断裂换行
  • 显式指定Python运行版本:在项目根目录新增runtime.txt文件,写入内容python-3.8.5,与本地开发版本完全对齐。未显式指定版本时,Heroku会自动使用当前平台默认的Python版本,版本不兼容时会出现依赖安装异常、模块无法被加载的问题。
  • 核查build流程日志:打开Heroku项目的构建日志,确认日志中存在Installing streamlit==0.74.1的对应安装记录,无依赖安装报错。若存在安装失败提示,调整对应依赖的版本兼容性后重新触发部署。
  • 调整Procfile启动命令:避免使用简写的streamlit run命令,显式指定可执行文件路径,消除路径识别偏差。修改后Procfile内容为:
    web: sh setup.sh && ~/.local/bin/streamlit run site.py
    
    若setup.sh存在配置写入异常,可直接将Streamlit的运行参数合并到启动命令中,省略单独的shell脚本配置:
    web: ~/.local/bin/streamlit run site.py --server.port=$PORT --server.headless=true --server.enableCORS=false
    
  • 最小依赖集验证:先将requirements.txt调整为仅包含核心依赖的最小可运行版本,排除依赖冲突影响:
    streamlit==0.74.1
    pandas==1.1.5
    numpy==1.19.5
    
    确认最小依赖集可以正常部署运行后,再逐个添加其他依赖,定位具体的冲突项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 22:45:05