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

在Heroku部署Flask应用时Procfile未识别web类型问题求助

问题排查及解决方案

1. 首要问题:Procfile命名错误

你当前的Procfile文件名为Procfile.txt,Heroku要求Procfile不得带有任何后缀名,且首字母必须大写。你需要将文件重命名为无后缀的Procfile,这就是你部署时返回Procfile declares types -> (none)的直接原因。

2. app.py代码逻辑错误

你将Flask实例app的初始化写在了if __name__=="__main__"代码块内部,gunicorn启动时会直接导入app模块,不会执行该代码块内的逻辑,会出现找不到app实例的报错,需要调整代码:

from website import create_app

# 将app实例提到全局作用域
app = create_app()

if __name__=="__main__":
    app.run(debug=True, port=2000)

3. 依赖文件命名及内容错误

  • 你当前的依赖文件名为requirement.txt,标准命名应为requirements.txt(末尾多一个s)
  • 需确认requirements.txt中已添加gunicorn依赖,以及你项目用到的flask、flask-sqlalchemy、flask-login等所有依赖包。

4. 跨平台路径兼容问题

你在__init__.py中读取配置文件用了Windows风格的反斜杠路径website\config.json,Heroku运行环境为Linux,会识别失败,建议修改为跨平台的路径写法:

import os
with open(os.path.join('website', 'config.json'), 'r') as c:
    params = json.load(c)["params"]

后续涉及路径拼接的逻辑都建议用os.path.join处理,避免硬编码斜杠带来的兼容问题。

5. 导入路径校验

你目录结构中视图文件名为view.py,但__init__.py中导入语句为from .views import views,注意文件名和导入名是否匹配,若实际文件名为view.py则需修改导入语句为from .view import views。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:36:04