wake-up-neo.net

Django-Upgrade auf Fehler 1.9 "AppRegistryNotReady: Apps sind noch nicht geladen."

Beim Upgrade auf Django 1.9 von 1.8 erhielt ich diesen Fehler. Ich habe die Antworten auf ähnliche Fragen geprüft, aber ich dachte nicht, dass dies ein Problem mit Paketen oder Apps von Drittanbietern ist.

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

Ich habe die installierten Apps für 'Django.contrib.auth' geändert.

60
Kishore K

Ich würde eine benutzerdefinierte Funktion in einer meiner __init__.py-Datei schreiben. Es verursachte den Fehler. Als ich diese Funktion aus __init__.py verschoben habe, hat es funktioniert.

21
Kishore K

Versuchen Sie, diese Zeilen am Anfang Ihrer Einstellungsdatei hinzuzufügen:

import Django
django.setup()

Wenn dies nicht hilft, versuchen Sie, Drittanbieteranwendungen nacheinander aus der Liste der installierten Apps zu entfernen.

81
inlanger

Dieser Fehler tritt auf, wenn Sie eine Anwendung in INSTALLED_APPS in der Datei settings.py hinzufügen, diese App jedoch nicht auf Ihrem Computer installiert ist. Sie haben zwei Lösungen:

  1. Installieren Sie diese App mit Paketmanagern wie pip in ubuntu
  2. Oder Kommentieren Sie die installierte App in der Datei settings.py aus

Dieser Fehler kann auch auftreten, wenn Sie sich nicht in Ihrer virtuellen Umgebung befinden, die Sie möglicherweise für Ihr Projekt erstellt haben.

7
Amrit

In meinem Fall trat der Fehler auf, als ich python manage.py makemigrations für Django 2.0.6 erstellte. 

Die Lösung bestand darin, python manage.py runserver auszuführen und den tatsächlichen Fehler (der nur eine fehlende Umgebungsvariable war) anzuzeigen.

6
Pavel Vergeev

Entfernen Sie den gesamten settings.LOGGING dictConfig und starten Sie den Server neu. Wenn dies funktioniert, schreiben Sie die Einstellung gemäß der Dokumentation von Version 1.9 neu.

https://docs.djangoproject.com/de/1.9/topics/logging/#examples

5
pragmar

Für mich war das Problem die Tatsache, dass ich eine App in INSTALLED_APPS importierte, die selbst ein Modell in ihrer __init__.py-Datei importierte

Ich hatte :

settings.py

INSTALLED_APPS = [
    ...
    'myapp',
    ...
]

myapp.__init__.py

from Django.contrib.sites.models import Site

das Auskommentieren von import models in myapp.__init__.py hat funktioniert:

# from Django.contrib.sites.models import Site
3
Albyorix

Für mich auskommentieren

'grappelli.dashboard',
'grappelli',

in INSTALLED_APPS hat funktioniert

2
algometrix

Mein Problem war, dass ich vor dem Aufruf von Django.setup() versucht habe, ein Django-Modell zu importieren.

Das hat für mich funktioniert:

import Django
django.setup()

from myapp.models import MyModel

Das obige Skript befindet sich im Projektstammordner.

2
M3RS

Wenn ich meine Django-Version auf 1.9 umstelle, tritt der Fehler nicht auf . pip uninstall Django pip install Django==1.9

1
admin

Mein Problem war: Django-Reversion> = 1.8.7, <1.9

für Django 1.9.7 sollten Sie Folgendes verwenden: Django-Reversion == 1.10.0

Ich habe Django-cms 3.2 auf 3.3 aufgerüstet und habe es gefunden, indem ich Apps kommentiert habe und dann die Kommentare zurückgenommen habe.

Richtige Antwort hier: https://stackoverflow.com/a/34040556/2837890

1
Anshik

Django.setup () oben funktioniert nicht, wenn Sie ein Skript explizit ausführen. Mein Problem wurde behoben, als ich dies unten in der Einstellungsdatei hinzufügte

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
import sys
if BASE_DIR not in sys.path:
    sys.path.append(BASE_DIR)
os.environ['Django_SETTINGS_MODULE'] =  "igp_lrpe.settings"
os.environ.setdefault("Django_SETTINGS_MODULE", "igp_lrpe.settings")
import Django
django.setup()
0
Arup Barman

Beim Versuch, auf Modellobjekte in apps.py zuzugreifen, ist dieser Fehler aufgetreten:

class QuizConfig(AppConfig):
name = 'quiz'

def ready(self):
    print('===============> Django just started....')
    questions_by_category = Question.objects.filter(category=2) # <=== Guilty line of code.

Der Versuch, auf Question zuzugreifen, bevor die App die Modellklasse geladen hat, hat den Fehler für mich verursacht.

0

In meinem Fall wurde eine meiner Einstellungen, 'CORS_Origin_WHITELIST', in der Datei settings.py festgelegt, war jedoch in meiner .env-Datei nicht verfügbar. Deshalb schlage ich vor, dass Sie Ihre Einstellungen überprüfen, insbesondere die mit .env verknüpften

0
medobills

Ich habe viele Dinge ausprobiert, aber nur ein Downgrade von Django auf 1.8.18 hat dieses Problem für mich behoben:

pip install Django==1.8.18

Es ist eine der installierten Apps, die fehlschlägt, aber ich konnte nicht finden, welche.

0
oriadam

Dieses Problem wird auch bei inkonsistenten settings.py beim fehlerhaften Schreiben von INSTALLED_APPS beobachtet. Überprüfen Sie, ob Sie Apps korrekt eingeschlossen und mit "," getrennt haben.

0
Waykos

Spät auf der Party, aber Grappelli war auch der Grund für meinen Fehler. Ich habe die kompatible Version auf pypi nachgeschlagen und das hat es für mich behoben.

0
lslaz

Versuchen Sie, die virtuelle Umgebung zu aktivieren. In meinem Fall verwenden Sie das Befehlszeilen-Tool git: 

source scripts/activate

Löst mein Problem.

Den User-Import füge ich in die settings-Datei ein, um das Rest-Call-Token so zu verwalten 

# settings.py
from Django.contrib.auth.models import User
def jwt_get_username_from_payload_handler(payload):
   ....

JWT_AUTH = {
    'JWT_PAYLOAD_GET_USERNAME_HANDLER': jwt_get_username_from_payload_handler,
    'JWT_PUBLIC_KEY': PUBLIC_KEY,
    'JWT_ALGORITHM': 'RS256',
    'JWT_AUDIENCE': API_IDENTIFIER,
    'JWT_ISSUER': JWT_ISSUER,
    'JWT_AUTH_HEADER_PREFIX': 'Bearer',
}
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
       'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
    ),
}

Denn zu diesem Zeitpunkt sind Django-Bibliotheken noch nicht fertig. Daher habe ich die import in die Funktion eingefügt und sie fing an zu arbeiten. Die Funktion muss nach dem Start des Servers aufgerufen werden 

0
Thai Tran

Wie andere bereits gesagt haben, kann dies der Fall sein, wenn Sie keine App installiert haben, die in INSTALLED_APPS aufgeführt ist.

In meinem Fall hat manage.py versucht, die Ausnahme zu protokollieren, was dazu führte, dass versucht wurde, die Wiedergabe zu rendern, da die App noch nicht initialisiert wurde. Durch das Auskommentieren der except-Klausel in manage.py wurde die Ausnahme ohne spezielles Rendering angezeigt, wodurch der verwirrende Fehler vermieden wurde.

# Temporarily commenting out the log statement.
#try:
    execute_from_command_line(sys.argv)
#except Exception as e:
#    log.error('Admin Command Error: %s', ' '.join(sys.argv), exc_info=sys.exc_info())
#    raise e
0
John Lehmann