Django错误:配置不当:WSGI应用程序
我的应用程序昨晚还好好的,不知道今早怎么就不行了。我记得我只做了一件事,就是创建了一个叫 django
的应用来存储我的模型、测试和视图。
现在我在用 Heroku Postgres 应用在 OS X 上运行 django 时遇到了这个错误,并且使用了 dj_database 作为中间件:
File "/Users/{ME}/Projects/{PROJECT}/{PROJECT}/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 58, in get_internal_wsgi_application
"could not import module '%s': %s" % (app_path, module_name, e)) django.core.exceptions.ImproperlyConfigured: WSGI application
'{PROJECT}.wsgi.application' could not be loaded; could not import module
'{PROJECT}.wsgi': No module named core.wsgi
这是我 wsgi.py
文件中相关的部分:
"""
WSGI config for {PROJECT} project.
This module contains the WSGI application used by Django's development
server and any production WSGI deployments. It should expose a
module-level variable named ``application``. Django's ``runserver``
and ``runfcgi`` commands discover this application via the
``WSGI_APPLICATION`` setting.
Usually you will have the standard Django WSGI application here, but
it also might make sense to replace the whole Django WSGI application
with a custom one that later delegates to the Django one. For example,
you could introduce WSGI middleware here, or combine a Django
application with an application of another framework.
"""
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "do.settings")
# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)
这是我觉得相关的 settings.py
文件中的部分:
WSGI_APPLICATION = '{PROJECT}.wsgi.application'
# ...
import dj_database_url
DATABASES['default'] = dj_database_url.config(default='sqlite://db/sqlite3.db')
2 个回答
0
来自Django的文档:
你需要避免用内置的Python或Django组件来命名你的项目。特别是,像django(这会和Django本身冲突)或test(这会和Python的一个内置包冲突)这样的名字是要避免的。
7
创建一个叫做 django
的应用意味着,任何写成 from django import X
的代码都会去找你自己做的这个应用,而不是去找 django
这个框架。
在这种情况下,软件试图导入 django.core.wsgi
,但它现在在你的应用代码里找这个文件,而这个文件根本不存在,所以就出现了错误:No module named core.wsgi
。
给你的应用换个名字。
你需要重命名包含你应用的文件夹,以及在 settings.py
文件中的 INSTALLED_APPS
这一项。