Beginnend Sellerie: AttributeError: 'module' Objekt hat kein Attribut 'Sellerie'
Ich versuche zu starten Sellerie-worker-server von einer Befehlszeile aus:
celery -A tasks worker --loglevel=info
Den code in tasks.py:
import os
os.environ[ 'DJANGO_SETTINGS_MODULE' ] = "proj.settings"
from celery import task
@task()
def add_photos_task( lad_id ):
...
Bekomme ich die nächste Fehlermeldung:
Traceback (most recent call last):
File "/usr/local/bin/celery", line 8, in <module>
load_entry_point('celery==3.0.12', 'console_scripts', 'celery')()
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/__main__.py", line 14, in main
main()
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/celery.py", line 946, in main
cmd.execute_from_commandline(argv)
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/celery.py", line 890, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/base.py", line 177, in execute_from_commandline
argv = self.setup_app_from_commandline(argv)
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/base.py", line 295, in setup_app_from_commandline
self.app = self.find_app(app)
File "/usr/local/lib/python2.7/site-packages/celery-3.0.12-py2.7.egg/celery/bin/base.py", line 313, in find_app
return sym.celery
AttributeError: 'module' object has no attribute 'celery'
Weiß jemand, warum die 'Sellerie' - Attribut nicht gefunden werden kann? Danke für die Hilfe.
Das Betriebssystem ist Linux Debian 5.
Bearbeiten. Vielleicht die Ahnung. Kann jemand erklären mir den nächsten Kommentar zu einer Funktion (, warum müssen wir sicher sein, dass es Module findet sich im aktuellen Verzeichnis)?
# from celery/utils/imports.py
def import_from_cwd(module, imp=None, package=None):
"""Import module, but make sure it finds modules
located in the current directory.
Modules located in the current directory has
precedence over modules located in `sys.path`.
"""
if imp is None:
imp = importlib.import_module
with cwd_in_path():
return imp(module, package=package)
InformationsquelleAutor der Frage sergzach | 2012-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vergaß zu erstellen Sie eine Sellerie-Objekt in tasks.py:
Danach konnten wir normal starten Aufgaben:
InformationsquelleAutor der Antwort sergzach
Sellerie verwendet
celery
- Datei für die Speicherung der Konfiguration Ihrer app können Sie nicht nur geben Sie eine python-Datei mit Aufgaben und starten Sie den Sellerie.Sollten Sie definieren
celery
- Datei ( für Sellerie>3.0; zuvor war esceleryconfig.py
)..Diesem Beispiel, wie start-Sellerie mit config-Datei an
app/celery.py
Hier ist zum Beispiel Sellerie-Datei: https://github.com/Kami/libcloud-sandbox/blob/master/celeryconfig.py
InformationsquelleAutor der Antwort Rustem
Für alle, die immer die gleiche Fehlermeldung bei einer scheinbar anderen Grund, warum, beachten Sie, dass, wenn eine der Einfuhren in Ihren Initialisierungs-Datei fehlschlagen, Ihre app zu erhöhen wird diese völlig mehrdeutig
AttributeError
eher als die Ausnahme, dass zunächst verursacht es.InformationsquelleAutor der Antwort kellanburket
Versuchen starten Sellerie:
celeryd --config=my_app.my_config --loglevel=INFO --purge -Q my_queue
Gibt es nächste Skript in meinem
tasks.py
:Gibt es nächste Skript in
my_config.py
:InformationsquelleAutor der Antwort Evgenii
Beim ausführen
celery -A tasks worker --loglevel=info
Ihre Sellerie-app verfügbar gemacht werden sollten, die im Modultasks
. Es sollte nicht sein, verpackt in eine Funktion oder einif
Aussagen.Wenn Sie
make_celery
in einer anderen Datei, und importieren Sie die Sellerie-app, um Ihre die-Datei, die Sie auf der Durchreise sind Sellerie.InformationsquelleAutor der Antwort Chuma Umenze
Mein problem war, dass ich die
celery
variable innerhalb einer main-Funktion:sein, wenn es vor die Tür gesetzt.
InformationsquelleAutor der Antwort Philip Bergström