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

Heroku部署报错Failed to find attribute 'run' in 'app'问题咨询

报错排查与解决步骤

报错信息:Failed to find attribute 'run' in 'app'

1. 优先修正Procfile启动配置

该报错90%以上是启动命令和实际文件结构不匹配导致:

  • 你的run.py存放在项目根目录(业务代码app文件夹外部),如果当前Procfile写为web: gunicorn app:run,会直接触发错误:该命令默认读取app目录下的__init__.py模块,查找其中的run属性,而非读取根目录的run.py文件。
  • 按你的项目结构,正确写法分两种场景:
    • 如果run.py中定义的是服务实例(比如Flask/Django的app实例),启动命令改为web: gunicorn run:app(前半段run对应根目录的run.py模块,后半段app是你在run.py中定义的服务实例名,实例名有变动的话同步替换即可)
    • 如果run.py中是通过run()函数启动服务,直接写web: python run.py即可。

2. 检查run.py的代码逻辑

  • 确认run.py中的服务实例/run函数是模块级别的公开属性,没有被包裹在函数内部的局部作用域里。
  • 不要把服务启动逻辑完全写在if __name__ == '__main__':判断下,gunicorn不会执行该条件内的代码,仅本地调试会生效。

3. 验证模块导入规则

如果你的业务需求确实是要从app模块加载run属性,需要做两个检查:

  • 确认app文件夹下存在空白的__init__.py文件,保证Python将其识别为可导入的模块,而非普通目录。
  • 确认app/__init__.py中已经显式导出了run对象,比如添加from .xxx import run的顶层导入代码。

内容的提问来源于stack exchange,提问作者Tan Zeng Yang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:30:03