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

Heroku部署Flask应用报No module named 'flask'错误排查

Heroku部署触发ModuleNotFoundError: No module named 'flask'排查方案

按优先级从高到低排查即可:

1. 确认核心文件存放位置

  • requirements.txt、Procfile、app.py三个文件必须放在Git仓库的根目录平级存放,不要把requirements.txt丢到src、app这类子文件夹里。Heroku部署时只会扫描仓库根目录的requirements.txt安装依赖,位置不对的话根本不会装Flask,启动自然报错。
  • 检查.gitignore配置,不要把requirements.txt忽略了,确保git提交时这个文件确实被推到Heroku端,可以执行git ls-files | grep requirements.txt确认,有输出才说明文件被正常提交。

2. 核对构建阶段日志

  • 你现在贴的是应用启动阶段的报错,缺了前面构建阶段的日志。重新触发一次部署,找日志里有没有-----> Installing requirements with pip这段提示:
    • 没有这段:说明Heroku没识别到你的Python项目,根本没走依赖安装流程
    • 有这段:往下翻有没有Flask安装失败、版本冲突、网络拉取超时的报错,对应解决报错即可

3. 清理构建缓存重新部署

  • Heroku默认会缓存历史构建的依赖,缓存损坏时经常出现依赖列表里有包但实际没装上的问题,执行以下命令清缓存重部署:
heroku plugins:install heroku-builds
heroku builds:cache:purge -a 替换成你自己的Heroku应用名
git push heroku main

4. 检查构建包配置

  • 如果你之前手动加过其他构建包,可能打乱Python环境的构建流程,执行以下命令确认构建包列表,确保heroku/python在第一位:
heroku buildpacks -a 替换成你自己的Heroku应用名
  • 如果顺序不对或者有多余的构建包,直接清空后重新加Python构建包即可:
heroku buildpacks:clear -a 替换成你自己的Heroku应用名
heroku buildpacks:add heroku/python -a 替换成你自己的Heroku应用名

5. 清理无效依赖、避免提交本地虚拟环境

  • 不要把本地的虚拟环境文件夹(venv、.venv、env等)提交到Git仓库,一定要把这些路径加到.gitignore里。如果提交了本地虚拟环境,Heroku会优先加载你本地上传的环境,和平台的Python版本不兼容,也会报模块找不到的错。
  • 你现在的requirements.txt里混了pipenv、virtualenv、distlib、filelock、virtualenv-clone这类虚拟环境管理工具的依赖,这些包在Heroku环境里完全没用,还容易触发依赖冲突,直接删掉就行,只保留项目运行实际需要的包。
  • 你现在的app.py导入写法、Procfile启动配置都是正确的,不用修改,只要依赖能正常安装,应用就能正常启动。

内容的提问来源于stack exchange,提问作者Alabi Oluwabusayo Joseph

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:54:24