Django ImproperlyConfigured - Die SECRET_KEY-Einstellung darf nicht leer sein

Ich arbeite mit einer django-Anwendung mit Sellerie. Ich erhalte eine seltsame Fehlermeldung in meinen tasks.py - Datei, die ist wie folgt:

from __future__ import absolute_import

from celery import shared_task
from django.contrib.auth.models import User

# some code 
# ....

Hier ist der Fehler:

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY must not be empty.

In meinem settings.py, SECRET_KEY definiert ist

# ...
import myproj.tasks
import djcelery

djcelery.setup_loader()

# ...
SECRET_KEY = '18730s9n9sjxamsuJSismxOIAmso102xjAs'
# ...

Die Anwendung läuft wunderbar, wenn ich den Kommentar der import in der tasks.py Datei:

# from django.contrib.auth.models import User

und, noch erstaunlicher ist, dass es auch gut läuft, wenn ich die genau die gleiche Importe in einer anderen Datei (z.B. testfile.py) in das gleiche Verzeichnis.

Warum ist dieser Fehler passiert?

Edit: Hier ist mein celery.py Datei

from __future__ import absolute_import
import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproj.settings')

from django.conf import settings #noqa

app = Celery('myproj')

app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
  • Hast du DJANGO_SETTINGS_MODULE Umgebungsvariable?
  • Ja, es ist in manage.py mit os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproj.settings")
  • Die Django version verwenden Sie?
  • Ich bin mit Django 1.8.3
  • Zeigen Sie uns ein Befehl, den du gelaufen bist, um diese Fehler. Wie starten Sie Sellerie?
  • Es ist höchstwahrscheinlich ein Ergebnis von circular import irgendwo. Es ist schwer zu sagen, wo genau, ohne Ihre gesamte code-Basis.
  • Ich bekomme genau das gleiche Ergebnis beim aufrufen einer Sellerie-oder manage.py -Befehl, zum Beispiel celery -A myproj worker -B -l info
  • können Sie nach Ihren celery.py? sind Sie mit django-celery?
  • Ich aktualisierte die Frage zu zählen celery.py. Ich bin mit django-celery 3.1.17
  • könnte es sein, dass du den Import etwas auf deine Einstellungen-Datei, die bewirkt, dass die Einstellungen-Datei importiert werden im Gegenzug? (Rundschreiben-import)
  • Wie bereits in den docs docs.celeryproject.org/en/latest/userguide/... können Sie den Pfad zu einer Aufgabe anstatt den Import der Aufgaben direkt in Ihren Einstellungen.
  • Yep, das war es. Ich habe den Fehler behoben, danke für die Hilfe, @Paulo. Sollten Sie veröffentlichen Sie Ihre Antwort, damit kann ich markieren Sie es als richtig =)
  • Lassen Sie uns weiter, diese Diskussion im chat.

Schreibe einen Kommentar