我正在为我的项目尝试不同的环境设置,下面是我的项目文件夹结构:
|-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 !')
基于文件.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静态
而不是:
dj静态
奇怪的是抛出的错误是:
django.core.exceptions.ImproverlyConfigured
而不是:
ModuleNotFoundError