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

Heroku部署Django应用报错:找不到app/main:app文件或目录

Heroku部署Django+Uvicorn启动报错的解决办法

问题根源

你搞错了Uvicorn的启动路径写法——Uvicorn要的是Python模块路径(用点分隔层级),不是文件系统的路径(用斜杠),而且Heroku的Procfile必须明确进程类型。

正确的Procfile配置

根据你的项目结构(根目录下有app文件夹,里面有main.py),把Procfile改成下面这样:

web: uvicorn app.main:app --host 0.0.0.0 --port=${PORT}

重点改这几个地方:

  • 把app/main换成app.main:这是Python识别模块的正确写法,app是包,main是包里的模块
  • 开头加web::Heroku要求Web服务进程必须标web,不然会把命令解析成普通bash命令,导致找不到路径
  • 删掉--reload:这是开发环境的热重载参数,生产环境用不上,还可能引发启动问题

额外要检查的点

  • 确认app文件夹里有__init__.py(空文件就行),这样Python才会把它当成合法的包
  • 检查main.py里确实定义了叫app的ASGI实例,比如app = DjangoASGIHandler()这类代码
  • 确保Heroku上的项目根目录在Python的搜索路径里,一般正常部署的话默认没问题,如果有问题可以在requirements.txt里加相关配置或者设置PYTHONPATH环境变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:34:55