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

Heroku部署Python应用失败:推送被拒,Python版本错误

首次部署Flask应用到Heroku?看这一步一步来就行!

嘿,既然你有Heroku部署PHP的经验,那搞定Flask应该没啥大问题!我给你梳理一下从你的Hello World项目到成功部署的全流程:

第一步:先把项目结构捋顺

首先得确保你的文件结构是Flask和Heroku都认的样子,你的index.html必须放在templates文件夹里(Flask默认找这个目录下的模板),另外还得补两个关键文件:requirements.txt和Procfile。最终结构应该是这样:

your-project-folder/
├── Main.py
├── templates/
│   └── index.html
├── requirements.txt
└── Procfile

第二步:补全依赖文件 requirements.txt

Heroku需要这个文件知道你的应用依赖哪些Python包。你至少需要Flask和生产环境用的WSGI服务器gunicorn,文件内容可以写成:

Flask==2.3.3
gunicorn==21.2.0

如果本地已经装了这些包,也可以直接用pip freeze > requirements.txt生成更准确的依赖列表(记得在虚拟环境里操作哦)。

第三步:创建启动配置文件 Procfile

这个文件告诉Heroku怎么启动你的应用,内容就一行,注意首字母是大写的P,而且没有后缀:

web: gunicorn Main:app

解释一下:web表示这是一个Web进程,gunicorn是我们用的WSGI服务器,Main:app指的是从Main.py文件里加载名为app的Flask实例。

第四步:完善你的 Main.py 代码

你的代码最后一行没写完,而且要适配Heroku的端口设置(Heroku会动态分配端口,存在环境变量里),修改后的完整代码应该是:

import os
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html", message="Hello World")

if __name__ == "__main__":
    # 从环境变量取端口,本地默认用5000
    port = int(os.getenv("PORT", 5000))
    app.run(host="0.0.0.0", port=port)

第五步:本地先测一遍(推荐)

部署前先在本地跑起来确认没问题:

  • 安装依赖:pip install -r requirements.txt
  • 启动应用:python Main.py
  • 打开浏览器访问http://localhost:5000,应该能看到你的Hello World页面。

第六步:部署到Heroku

假设你已经装了Heroku CLI并且登录了(没装的话直接搜Heroku CLI安装就行,登录用heroku login):

  • 初始化Git仓库(如果还没的话):
    git init
    git add .
    git commit -m "Initial Flask app commit"
    
  • 创建Heroku应用:heroku create your-custom-app-name(不想起名的话直接输heroku create,Heroku会给你随机生成一个)
  • 推代码到Heroku:git push heroku main(如果你的主分支是master,就换成git push heroku master)
  • 打开应用:heroku open,直接跳转到你的线上应用啦!

几个容易踩的坑提醒

  • 别把templates文件夹名字写错,Flask对这个大小写和拼写很敏感,必须是全小写的templates
  • Procfile一定要是大写P开头,不能有.txt后缀,不然Heroku识别不了
  • 如果部署后打不开,用heroku logs --tail看实时日志,大部分问题都能从日志里找到原因

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:10:10