【问题标题】:How to debug an AppRegistryNotReady exception in Django 1.9?如何在 Django 1.9 中调试 AppRegistryNotReady 异常?
【发布时间】:2017-11-14 22:46:28
【问题描述】:

我正在将一个大型项目从 Django 1.8 迁移到 Django 1.9,当我尝试运行该项目时,我得到了 AppRegistryNotReady 异常。这个问题的回溯似乎完全没有帮助。

Traceback (most recent call last):
  File "/opt/project/myproject/manage.py", line 16, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 342, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 176, in fetch_command
    commands = get_commands()
  File "/usr/local/lib/python2.7/dist-packages/django/utils/lru_cache.py", line 100, in wrapper
    result = user_function(*args, **kwds)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 71, in get_commands
    for app_config in reversed(list(apps.get_app_configs())):
  File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 137, in get_app_configs
    self.check_apps_ready()
  File "/usr/local/lib/python2.7/dist-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.

既然回溯中没有我项目的代码,我该如何追踪这个问题的根源?

【问题讨论】:

  • 检查您应用的 __init__.py 文件是否未导入任何模型(请参阅 this question)。
  • 这个问题可能是由从 PyPi 安装的应用程序引起的,这比我自己的代码更难检查。有没有办法让 python 或 Django 告诉我哪个应用程序触发了异常?
  • 正如你所说,错误发生在 Django 的代码中,所以没有简单的方法来判断是哪个应用程序导致了问题。

标签: python django debugging django-apps


【解决方案1】:

由于当您的INSTALLED_APPS 中有未正确安装的应用程序时可能会发生此错误,请尝试注释掉这些应用程序以尝试找出导致问题的原因。

【讨论】:

  • 所有应用都被注释掉后仍然会出现异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 2014-01-02
  • 2018-10-10
相关资源
最近更新 更多