django:django.core.exceptions.AppRegistryNotReady: Apps zijn nog niet geladen

Ik zat vast met het proces toen ik vandaag het django-project op de server wilde implementeren. Wanneer ik python manage.py runserverop de server uitvoer, laat de terminal me dit zien:

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.

De django-versie op de server is 1.8.5 en de lokale versie 1.8.1. Ik betwijfel of de versie dit probleem kan veroorzaken. Maar ik betwijfelde ook of de wsgi.pyniet goed was geschreven, hier is de 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()

Hier is het bestand 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)

Als ik python manage.py check op de server uitvoer, is de output hieronder:

#!/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)

Kan iemand mij wat tips geven? Heel erg bedankt


Antwoord 1, autoriteit 100%

Dit kan een probleem zijn met je Django-instellingen. Ik had bijvoorbeeld zojuist in LOGGINGeen bestandsnaam opgegeven in een niet-bestaande map. Zodra ik het in een bestaande map veranderde, was het probleem opgelost.


Antwoord 2, autoriteit 52%

Ik kwam dit probleem vandaag tegen. Er was een app in INSTALLED_APPS die niet bestond. Nadat het was verwijderd, werd de uitzondering opgelost. Apps die om welke reden dan ook niet kunnen worden geïmporteerd, veroorzaken ook een AppRegistryNotReady-uitzondering.

Hier is de buggeschiedenis voor dit probleem.

Bovendien kan het proberen om iets van app-niveau naar projectniveau te importeren dit probleem ook veroorzaken. Ik werk momenteel bijvoorbeeld aan een project met Celery Beat. Ik heb geprobeerd taakschema’s op app-niveau te definiëren als woordenboeken die vervolgens werden geïmporteerd in het bestand celery.py van het project. Door het woordenboek uit de app in het project te importeren, veroorzaakte Django een AppRegistryNotReady-uitzondering. Evenzo kan het importeren van items tussen apps de uitzondering veroorzaken.


Antwoord 3, autoriteit 24%

./manage.py runserverzal uw wsgi.pygebruiken, maar het lijkt erop dat de stacktracering die u bovenaan heeft getoond niet het wsgi-bestand bevat. Daarom treedt de fout op voordat het wsgi-bestand is geladen.

Ik kan je fout niet opnieuw maken, maar aangezien je de nieuwe stijl wsgi lijkt te gebruiken en zoals je zegt “de django-versie op de server is 1.8.5, en de lokale is 1.8.1”, heb ik vraag me af of er iets mis is in je omgeving.

Mijn voorgestelde stappen zijn:

  1. Bouw uw virtuele omgeving opnieuw. Verwijder de env-map en installeer opnieuw met pip install -r requirements.txtof iets dergelijks.
  2. Bekijk andere vragen over StackOverflow – dit lijkt een veelvoorkomend probleem te zijn. Bijvoorbeeld zoals hierboven: Django 1.7 gooit django.core .exceptions.AppRegistryNotReady: Modellen zijn nog niet geladen

Hopelijk kan iemand met meer ervaring suggesties toevoegen. Sorry dat ik niet het definitieve antwoord voor je heb.


Antwoord 4

Er kan een probleem zijn met uw settings.py-bestand . Controleer met name INSTALLED_APPS of u de apps correct hebt opgenomen en gescheiden met “,” .


Antwoord 5

Ik heb het opgelost door de eigenaar van het wsgi-toegangspunt in te stellen dat de apache naar root:root aanroept


Antwoord 6

Ik kreeg deze fout ook, ongeacht de bestaande antwoorden. Ik los dit op door lokaal te importeren in de functie bleekselderij.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

20 − 16 =

Other episodes