Starting Celery: AttributeError: l'objet 'module' n'a pas d'attribut 'céleri'
J'essaie de démarrer un Céleri travailleur serveur à partir d'une ligne de commande:
celery -A tasks worker --loglevel=info
Le code dans tasks.py:
import os
os.environ[ 'DJANGO_SETTINGS_MODULE' ] = "proj.settings"
from celery import task
@task()
def add_photos_task( lad_id ):
...
J'obtiens l'erreur suivante:
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'
Quelqu'un sait pourquoi le "céleri" attribut ne peut pas être trouvé? Je vous remercie pour l'aide.
Le système d'exploitation est Linux Debian 5.
Modifier. Peut-être l'indice. Quelqu'un pourrait-il m'expliquer le commentaire suivant à une fonction (pourquoi nous devons être sûrs qu'il trouve les modules dans le répertoire courant)?
# 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)
source d'informationauteur sergzach
Vous devez vous connecter pour publier un commentaire.
J'ai oublié de créer un objet de céleri tasks.py:
Après que nous pourrions normalement démarrer des tâches:
Céleri utilise
celery
de fichier pour le stockage de la configuration de votre application, vous ne pouvez pas donner un fichier python avec des tâches et de commencer le céleri.Vous devez définir
celery
fichier ( pour le Céleri>3.0; auparavant, il étaitceleryconfig.py
)..Cet exemple comment faire pour démarrer le céleri avec le fichier de config à
app/celery.py
Ici est un exemple de céleri fichier: https://github.com/Kami/libcloud-sandbox/blob/master/celeryconfig.py
Pour tous ceux qui se le même message d'erreur pour une apparence de raison, remarque que si les importations dans votre fichier d'initialisation échoue, votre application va vous poser cette totalement ambiguë
AttributeError
plutôt que l'exception origine.Essayez de démarrer le céleri:
celeryd --config=my_app.my_config --loglevel=INFO --purge -Q my_queue
Il est à côté de script dans mon
tasks.py
:Il est à côté de script dans
my_config.py
: