问题
My application was working last night, not sure why it won't work this morning. I think that all I did was to create an app called django
to store my models, tests, and views.
Getting this error, running django with the Heroku Postgres application on OS X and dj_database as middleware:
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
Relevant part of my wsgi.py
file:
"""
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)
Relevant (I think) part of my settings.py
file:
WSGI_APPLICATION = '{PROJECT}.wsgi.application'
# ...
import dj_database_url
DATABASES['default'] = dj_database_url.config(default='sqlite://db/sqlite3.db')
回答1:
Creating an app called django
means that any from django import X
is going to be looking at your app, not at the django
framework.
In this case, the software is trying to import django.core.wsgi, but it's now looking for this file in your app's code, where it's nowhere to be found; hence the error: No module named core.wsgi
Give your app another name.
You'll have to rename the folder that contains your app, and the INSTALLED_APPS
entry in settings.py
.
回答2:
from the Django documentation:
You’ll need to avoid naming projects after built-in Python or Django components. In particular, this means you should avoid using names like django (which will conflict with Django itself) or test (which conflicts with a built-in Python package).
来源:https://stackoverflow.com/questions/14801778/django-error-improperlyconfigured-wsgi-application