django error: ImproperlyConfigured: WSGI application
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
.
fox
Updated on June 13, 2022Comments
-
fox almost 2 years
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')
-
Thomas Orozco about 11 years@fox Happy to help! Remember to make sure never to override another Python's module with yours : )
-
fox about 11 yearsYes, makes sense. One additional question -- the app was never listed under
INSTALLED_APPS
. I forget, do I have to list it there for django to pick it up if the app's directory is within my current project directory (i.e.project\app
)? -
Thomas Orozco about 11 years@fox Yes, or
django
will not register the application and, among other things, not create the required DB tables. -
fox about 11 yearsokay, last q: how do I set up a relative path in the
INSTALLED_APPS
section?