1. ホーム
  2. python

[解決済み] django:django.core.exceptions.AppRegistryNotReady: アプリはまだロードされていません

2022-01-28 08:45:13

質問

今日、djangoのプロジェクトをサーバーにデプロイしようと思ったら、処理に行き詰まりました。というのは python manage.py runserver を実行すると、ターミナルにこのように表示されます。

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 343, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 177, in fetch_command
    commands = get_commands()
  File "/usr/lib/python2.7/site-packages/django/utils/lru_cache.py", line 101, in wrapper
    result = user_function(*args, **kwds)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 72, in get_commands
    for app_config in reversed(list(apps.get_app_configs())):
  File "/usr/lib/python2.7/site-packages/django/apps/registry.py", line 137, in get_app_configs
    self.check_apps_ready()
  File "/usr/lib/python2.7/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.

サーバーのdjangoのバージョンは1.8.5で、ローカルは1.8.1です。バージョンによってこの問題が起こるとは思えません。しかし、私は wsgi.py がきちんと書かれていなかったので、以下に示します。 wsgi.py :

import os
import sys

path = '/Users/Peterhon/Desktop/dict/'
if path not in sys.path:
    sys.path.append(path)

os.chdir(path)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dict.settings")

import django
django.setup()

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

以下は manage.py ファイルを作成します。

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dict.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.arg)

サーバ上でpython manage.pyのチェックを実行すると、以下のように出力されます。

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dict.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

どなたかヒントをいただけないでしょうか?ありがとうございました。

どのように解決するのですか?

これはあなたのDjangoの設定の問題である可能性が高いです。例えば、私はちょうど LOGGING は存在しないディレクトリにあるファイル名です。それを既存のディレクトリに変更すると、すぐに問題は解決しました。