Подтвердить что ты не робот

Django: django.core.exceptions.AppRegistryNotReady: приложения еще не загружены

Я застрял в процессе, когда захотел развернуть проект 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)

Может ли кто-нибудь дать мне несколько советов? Большое спасибо

4b9b3361

Ответ 1

Это может быть проблемой с настройками Django. Например, я просто указал в LOGGING имя файла в несуществующей директории. Как только я заменил его на существующий каталог, проблема была решена.

Ответ 2

Сегодня я столкнулся с этой проблемой. В INSTALLED_APPS было приложение, которого не было. Как только он был удален, он разрешил исключение. Приложения, которые не могут быть импортированы по какой-либо причине, также могут вызвать исключение AppRegistryNotReady.

Здесь история ошибок для этой проблемы.

Ответ 3

./manage.py runserver будет использовать ваш wsgi.py, но похоже, что трассировка стека, которую вы указали вверху, не содержит файл wsgi. Поэтому ошибка возникает до загрузки файла wsgi.

Я не могу воссоздать вашу ошибку, но поскольку вы, похоже, используете новый стиль wsgi, и, как вы говорите, "версия django на сервере 1,8,5, а локальная - 1,8", я Интересно, может ли быть что-то не так в вашей среде.

Мои предложенные шаги:

Надеюсь, кто-то с большим опытом сможет добавлять предложения. Извините, у меня нет окончательного ответа для вас.

Ответ 4

Я исправил это, установив владельца точки входа wsgi, которую apache вызывает для root: root

Ответ 5

В файле settings.py может быть проблема. В частности, INSTALLED_APPS проверяют, правильно ли вы включили приложения и разделили ",".

Ответ 6

Я получил эту ошибку тоже независимо от существующих ответов. Я решаю сделать локальный импорт в функции сельдерея.