带有设置子文件夹的django wsgi设置

django wsgi setup with settings subfolder

我正在为我的项目尝试不同的环境设置,下面是我的项目文件夹结构:

|-app
|-project
 |-__init__.py
 |-settings
  |-__init__.p
  |-base.py
  |-dev.py
  |-prod.py
 |-urls.py
 |-wsgi.py

在 base.py 中,我如何设置 WSGI_APPLICATION django 设置变量以指向父文件夹中的 wsgi 文件?

文件wsgi.py:

if base.STATUS == 'DEV':
  os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings.dev')
  application = get_wsgi_application()
elif base.STATUS == 'PROD':
  os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings.prod')
  application = Cling(get_wsgi_application())
else:
  raise Exception('Settings App Error !')

文件base.py:

...
WSGI_APPLICATION = 'project.wsgi.application'
...

文件开发者:

from project.settings.base import *

ALLOWED_HOSTS = ['127.0.0.1']
DEBUG = TRUE

文件prod.py:

from project.settings.base import *

ALLOWED_HOSTS = ['domain']
DEBUG = FALSE

错误是:

django.core.exceptions.ImproperlyConfigured: WSGI application 'project.wsgi.application' could not be loaded; Error importing module.

提前致谢。

您的 WSGI 文件名为 wsgy.py,但 Django 需要 wsgi.py。将文件重命名为 wsgi.py.

您的项目文件夹中需要有一个 __init__.py 文件才能将您的项目文件夹作为模块导入。只需在项目目录中创建一个空 __init__.py 文件即可。

已解决

不同的配置环境没问题,问题出在库依赖性上:

requirements.py 文件是:

django-static

而不是:

dj-static

奇怪的是抛出的错误是:

django.core.exceptions.ImproperlyConfigured

而不是:

ModuleNotFoundError