Ich habe eine Django 1.11 Projekt, mit Sellerie 3.1.25, angelegt wie:kann nicht lokalen Sellerie Arbeiter laufen, kein Modul mit dem Namen myapp
env
myproject
myapp
myotherapp
settings
settings.py
__init__.py
celery_init.py
Mein __init__.py
enthält:
from .celery_init import app as celery_app
und mein celery_init.py
enthält:
from __future__ import absolute_import
import os
import sys
import traceback
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings.settings')
from django.conf import settings
app = Celery('myproject')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
Wenn ich einen lokalen Sellerie Arbeiter für d beginnen evelopment Prüfung, mit:
env/bin/celery worker -A myproject -l info -n [email protected]%h -Q somequeue
es nicht, mit der Ausnahme:
ImportError: No module named myapp
Was dies verursacht? Ich nehme an, dass es ein Pfadproblem ist und ich die Projekteinstellungen nicht richtig laden kann, aber ich sehe das Problem mit meiner Konfiguration nicht. Ich habe gerade ein Upgrade auf Django 1.11 durchgeführt, und diese Einstellungen funktionierten in der vorherigen Version einwandfrei. Was mache ich falsch?
Ich habe versucht, Druckanweisungen am Ende meiner celery_init.py
hinzuzufügen, um sicherzustellen, dass es alles lädt, und jede Zeile wird ohne Fehler abgeschlossen.
Können Sie die vollständige Stack-Trace für den Fehler buchen? – solarissmoke
Führen Sie den Befehl aus dem Ordner myproject aus (Ebene des Projektebenenordners, nicht auf Einstellungen), stellen Sie sicher, dass virtuelles env aktiviert ist, wenn die Anwendung innerhalb eines ausgeführt wird. – daemon24