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

Django多应用项目Procfile配置(保留原始目录结构)

解决Django多层目录下Procfile的配置问题

核心思路

不用修改wsgi.py里的DJANGO_SETTINGS_MODULE配置,也不用调整原有目录结构,只需要让Gunicorn运行时能识别到Django项目的根目录(即包含manage.py的expenses文件夹)即可。

正确的Procfile配置方案

你有两种可选的配置方式:

  1. 切换到项目根目录后启动Gunicorn
    把Procfile内容改成:
web: cd expenses && gunicorn expenses.wsgi --log-file -

Gunicorn会先进入包含manage.py的expenses目录,此时Python会自动把这个目录加入模块搜索路径,既能找到内层expenses里的wsgi.py,也能识别同级的finances应用。

  1. 通过PYTHONPATH指定项目根目录
    如果不想切换目录,可以用环境变量指定Python的模块搜索路径:
web: PYTHONPATH=expenses gunicorn expenses.wsgi --log-file -

这个命令会把外层expenses目录(含manage.py的那个)加入Python的模块搜索路径,效果和第一种方法一致。

为什么之前的做法会出错

你之前修改wsgi.py里的DJANGO_SETTINGS_MODULE为expenses.expenses.settings,相当于把内层的expenses文件夹当作了Python的顶层模块目录,但finances应用是和内层expenses同级的,并不在它的子目录下,所以Django无法找到finances模块。而保持原有的expenses.settings配置,是基于项目根目录(含manage.py)的模块路径,这才是Django默认的正确路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 00:05:12