font - python plotly axis
Error del trabajador de apio: ImportError no hay módulo llamado apio (2)
Recibo un error de importación cuando intento iniciar mi trabajador de apio. No estoy seguro de cuál es el problema. Cualquier ayuda sería muy apreciada.
Mi proyecto:
email/__init__.py
/celery.py
Intento ejecutar la aplicación llamando a:
celery worker --app=email
He seguido todos los pasos aquí: http://docs.celeryproject.org/en/latest/getting-started/next-steps.html#about-the-app-argument
El rastreo:
File "/Users/.../bin/celery", line 9, in <module>
load_entry_point(''celery==3.0.24'', ''console_scripts'', ''celery'')()
File "/Users/.../lib/python2.7/site-packages/celery/__main__.py, line 14, in main
main()
File "/Users/.../lib/python2.7/site-packages/celery/bin/celery.py", line 957, in main
cmd.execute_from_commandline(argv)
File "/Users/.../lib/python2.7/site-packages/celery/bin/celery.py", line 901, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "/Users/.../lib/python2.7/site-packages/celery/bin/base.py", line 185, in execute_from_commandline
argv = self.setup_app_from_commandline(argv)
File "/Users/.../lib/python2.7/site-packages/celery/bin/base.py", line 300, in setup_app_from_commandline
self.app = self.find_app(app)
File "/Users/.../lib/python2.7/site-packages/celery/bin/base.py", line 317, in find_app
return self.find_app(''%s.celery:'' % (app.replace('':'', ''''), ))
File "/Users/.../lib/python2.7/site-packages/celery/bin/base.py", line 311, in find_app
sym = self.symbol_by_name(app)
File "/Users/.../lib/python2.7/site-packages/celery/bin/base.py", line 322, in symbol_by_name
return symbol_by_name(name, imp=import_from_cwd)
File "/Users/.../lib/python2.7/site-packages/kombu/utils/__init__.py", line 80, in symbol_by_name
module = imp(module_name, package=package, **kwargs)
File "/Users/.../lib/python2.7/site-packages/celery/utils/imports.py", line 99, in import_from_cwd
return imp(module, package=package)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named celery
Aquí está mi apio.
from __future__ import absolute_import
from celery import Celery
from app import mail
celery = Celery(''email.celery'',
broker = ''amqp://guest:guest@localhost:5672//'',
backend = ''amqp://'')
if __name__ == ''__main__'':
celery.start()
@celery.task
def send_email(nickname, email):
mail.send(msg)
El problema es que estás diciendo " oye hermano, oí que te gustaba que el apio tengas un poco de apio ".
Pero realmente deberías estar diciendo, " oye hermano, escuché que instalaste el apio, hagamos un archivo con un nombre realmente similar para no confundir el infierno de nuestro entorno ".
Cambie el nombre de su email/celery.py
archivo email/celery.py
por email/celery_app.py
Luego, cuando comience a trabajar con su trabajador, haga lo siguiente:
celery -A email worker --app=email.celery_app:app --loglevel=info # etc.
La clave es que no debe tener el archivo llamado celery.py
en su estructura de archivos, pero si no lo tiene, entonces no puede confiar en que apio encuentre el apio, por lo que debe señalarlo especificando: aplicación de forma manual.
En realidad, estaba teniendo un problema similar, asumiendo que estaba siguiendo el tutorial de Próximos pasos y todo lo que tenía que hacer para resolver el problema era ejecutar al trabajador desde el directorio anterior, es decir, asumiendo que actualmente se encuentra en la ejecución del directorio del proyecto
cd ..
celery -A proj worker -l info
Está funcionando para mí ahora.