[Django]-Django: AppRegistryNotReady()

66πŸ‘

βœ…

If you are using your django project applications in standalone scripts, in other words, without using manage.py – you need to manually call django.setup() first – it would configure the logging and, what is important – populate apps registry.

Quote from Initialization process docs:

setup()

This function is called automatically:

  • When running an HTTP server via Django’s WSGI support.

  • When invoking a
    management command.

It must be called explicitly in other cases, for
instance in plain Python scripts.

In your case, you need to call setup() manually:

if __name__ == '__main__':
    print "Starting Rango population script..."
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tangle.settings')

    import django
    django.setup()

    populate()

Also, this problem is described in detail in Troubleshooting section.

πŸ‘€alecxe

3πŸ‘

I found this solution, adding

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

after

os.environ.setdefault ...

3πŸ‘

I just stumbled about the same problem in my local development server.

After pulling some changed code in, the error was thrown.
The problem here obviously has nothing to do with wsgi, so I tried to run manage.py

A simple: python manage.py reveals the real error cause.

In my case a forgotten import of an external Django app.

Maybe this helps someone else out.

πŸ‘€normic

1πŸ‘

I also encountered this problem using Django 1.7 on an Apache server. Changing the wsgi handler call in my wsgi.py file fixed the problem:

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

This was suggested here by user β€˜jezdez’.

πŸ‘€Chris Wood

Leave a comment