J'ai joué avec un tuto de Django de Microsoft, qui a bien fonctionné dans mon environnement Visual Studio 2015 avec Python 3.4.3. Lorsque je tente de le lancer à travers mon serveur web, il échoue cependant:Django sur IIS: django.core.exceptions.AppRegistryNotReady: Les applications ne sont pas encore chargées
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:
Lorsque je teste le code via « runserver manage.py » sur le serveur Web, il fonctionne parfaitement. Quelqu'un at-il des recommandations sur la façon de déboguer ce qui ne va pas, lors de l'exécution via IIS?
Le serveur exécute aussi Python 3.4.3, avec django, django-crispy-forms, wfastcgi et mysqlclient installés. Python est exécuté via FastCGI sur un serveur R2 de Windows 2012 avec IIS 8.5 - configuration a été effectuée à l'aide du guide à https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-app-windows-server/
J'ai essayé:
1) Ajouter ce qui suit sous "os env ..." dans mon manage.py:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
2) Ajouter ce qui suit sous "os env ..." dans mon manage.py:
import django
django.setup()
Comme d'autres personnes ont mentionné ces solutions o ther threads, mais malheureusement sans chance. Je suis complètement nouveau à la fois Python/Django, donc je n'ai aucune idée sur la façon de procéder. Toute entrée serait très apprécié!
J'ai eu un problème similaire une fois. C'était une mauvaise initialisation de l'application wsgi. L'appel a changé sur les versions de Django et le tutoriel pourrait ne pas couvrir le vôtre. –