Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django on IIS: django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet

I have been playing around with a Django tutoiral from Microsoft, which worked fine in my Visual Studio 2015 environment with Python 3.4.3. When I try to run it through my webserver, it is failing though:

Error occurred:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\wfastcgi.py", line 805, in main
    result = handler(record.params, response.start)
  File "C:\Python34\lib\site-packages\django\core\handlers\wsgi.py", line 158, in __call__
    self.load_middleware()
  File "C:\Python34\lib\site-packages\django\core\handlers\base.py", line 51, in load_middleware
    mw_class = import_string(middleware_path)
  File "C:\Python34\lib\site-packages\django\utils\module_loading.py", line 20, in import_string
    module = import_module(module_path)
  File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "C:\Python34\lib\site-packages\django\contrib\auth\middleware.py", line 3, in <module>
    from django.contrib.auth.backends import RemoteUserBackend
  File "C:\Python34\lib\site-packages\django\contrib\auth\backends.py", line 4, in <module>
    from django.contrib.auth.models import Permission
  File "C:\Python34\lib\site-packages\django\contrib\auth\models.py", line 4, in <module>
    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
  File "C:\Python34\lib\site-packages\django\contrib\auth\base_user.py", line 49, in <module>
    class AbstractBaseUser(models.Model):
  File "C:\Python34\lib\site-packages\django\db\models\base.py", line 94, in __new__
    app_config = apps.get_containing_app_config(module)
  File "C:\Python34\lib\site-packages\django\apps\registry.py", line 239, in get_containing_app_config
    self.check_apps_ready()
  File "C:\Python34\lib\site-packages\django\apps\registry.py", line 124, in check_apps_ready
    raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.


StdOut: 

StdErr: 

When I test the code via "manage.py runserver" on the webserver, it works perfectly. Does anyone have any recommendations on how to debug what is going wrong, when running it through IIS?

The server is running Python 3.4.3 as well, with django, django-crispy-forms, wfastcgi and mysqlclient installed. Python is executed via FastCGI on a Windows 2012 R2 server with IIS 8.5 - configuration was done using the guide at https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-app-windows-server/

I have tried:

1) Adding the following under "os env..." in my manage.py:

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

2) Adding the following under "os env..." in my manage.py:

import django
django.setup()

As other people mentioned these solutions in other threads, but unfortunately without any luck. I am completely new to both Python/Django, so I have no idea on how to proceed. Any input would be much appreciated!

like image 932
user5801710 Avatar asked Jan 17 '16 15:01

user5801710


1 Answers

It turns out that the linked Microsoft guide is outdated.

In web.config, the following needs to be replaced:

<add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />

with:

<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />

and then it will work :-)

like image 127
user5801710 Avatar answered Nov 06 '22 11:11

user5801710