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!
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 :-)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With