IIS 上的 Django:django.core.exceptions.AppRegistryNotReady:应用程序尚未加载
Django on IIS: django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet
我一直在玩 Microsoft 的 Django tutoiral,它在我的 Visual Studio 2015 环境和 Python 3.4.3 中运行良好。当我尝试通过我的网络服务器 运行 它时,它失败了:
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:
当我在网络服务器上通过 "manage.py runserver" 测试代码时,它运行良好。当 运行通过 IIS 调试错误时,有人对如何调试错误有什么建议吗?
服务器也是 运行ning Python 3.4.3,安装了 django、django-crispy-forms、wfastcgi 和 mysqlclient。 Python 在装有 IIS 8.5 的 Windows 2012 R2 服务器上通过 FastCGI 执行 - 配置是使用 https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-app-windows-server/
处的指南完成的
我试过:
1) 在我的 manage.py 中的 "os env..." 下添加以下内容:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
2) 在我的 manage.py 中的 "os env..." 下添加以下内容:
import django
django.setup()
正如其他人在其他线程中提到的这些解决方案,但不幸的是没有任何运气。我对这两个 Python/Django 都是陌生的,所以我不知道如何进行。任何输入将不胜感激!
事实证明,链接的 Microsoft 指南已过时。
在web.config中,需要替换如下:
<add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />
与:
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
然后它将起作用:-)
我一直在玩 Microsoft 的 Django tutoiral,它在我的 Visual Studio 2015 环境和 Python 3.4.3 中运行良好。当我尝试通过我的网络服务器 运行 它时,它失败了:
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:
当我在网络服务器上通过 "manage.py runserver" 测试代码时,它运行良好。当 运行通过 IIS 调试错误时,有人对如何调试错误有什么建议吗?
服务器也是 运行ning Python 3.4.3,安装了 django、django-crispy-forms、wfastcgi 和 mysqlclient。 Python 在装有 IIS 8.5 的 Windows 2012 R2 服务器上通过 FastCGI 执行 - 配置是使用 https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-python-django-web-app-windows-server/
处的指南完成的我试过:
1) 在我的 manage.py 中的 "os env..." 下添加以下内容:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
2) 在我的 manage.py 中的 "os env..." 下添加以下内容:
import django
django.setup()
正如其他人在其他线程中提到的这些解决方案,但不幸的是没有任何运气。我对这两个 Python/Django 都是陌生的,所以我不知道如何进行。任何输入将不胜感激!
事实证明,链接的 Microsoft 指南已过时。
在web.config中,需要替换如下:
<add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />
与:
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
然后它将起作用:-)