python - Celery doesn't see the redis broker -
i trying use celery redis.
it celery.py file:
from __future__ import absolute_import celery import celery celery=celery(include=[ 'tasks.chatterbox' ]) # import celery config file celery.config_from_object('celeryconfig') if __name__ == '__main__': celery.start()
it celeryconfig.py file:
broker_url = 'redis://localhost:6379/0' # redis backend celery_result_backend = 'redis://'
and when run:
celery -a broker.celery worker -l info
i got error:
traceback (most recent call last): file "/usr/local/bin/celery", line 9, in <module> load_entry_point('celery==3.1.11', 'console_scripts', 'celery')() file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/__main__.py", line 30, in main main() file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/bin/celery.py", line 81, in main cmd.execute_from_commandline(argv) file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/bin/celery.py", line 769, in execute_from_commandline super(celerycommand, self).execute_from_commandline(argv))) file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/bin/base.py", line 306, in execute_from_commandline return self.handle_argv(self.prog_name, argv[1:]) file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/bin/celery.py", line 761, in handle_argv return self.execute(command, argv) file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/bin/celery.py", line 693, in execute ).run_from_argv(self.prog_name, argv[1:], command=argv[0]) file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/bin/worker.py", line 179, in run_from_argv return self(*args, **options) file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/bin/base.py", line 269, in __call__ ret = self.run(*args, **kwargs) file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/bin/worker.py", line 212, in run state_db=self.node_format(state_db, hostname), **kwargs file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/worker/__init__.py", line 100, in __init__ self.setup_instance(**self.prepare_args(**kwargs)) file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/worker/__init__.py", line 126, in setup_instance self.should_use_eventloop() if use_eventloop none file "/usr/local/lib/python2.7/dist-packages/celery-3.1.11-py2.7.egg/celery/worker/__init__.py", line 245, in should_use_eventloop self._conninfo.is_evented , not self.app.is_windows) file "/usr/local/lib/python2.7/dist-packages/kombu-3.0.16-py2.7.egg/kombu/connection.py", line 836, in is_evented return self.transport.supports_ev file "/usr/local/lib/python2.7/dist-packages/kombu-3.0.16-py2.7.egg/kombu/connection.py", line 786, in transport self._transport = self.create_transport() file "/usr/local/lib/python2.7/dist-packages/kombu-3.0.16-py2.7.egg/kombu/connection.py", line 518, in create_transport return self.get_transport_cls()(client=self) file "/usr/local/lib/python2.7/dist-packages/kombu-3.0.16-py2.7.egg/kombu/transport/redis.py", line 916, in __init__ self.connection_errors, self.channel_errors = self._get_errors() file "/usr/local/lib/python2.7/dist-packages/kombu-3.0.16-py2.7.egg/kombu/transport/redis.py", line 954, in _get_errors return get_redis_error_classes() file "/usr/local/lib/python2.7/dist-packages/kombu-3.0.16-py2.7.egg/kombu/transport/redis.py", line 78, in get_redis_error_classes redis import exceptions importerror: no module named redis
finally, project structure:
. ├── __init__.py ├── celeryconfig.py ├── broker │ ├── celery.py │ ├── __init__.py ├── tasks ├── chatterbox.py ├── __init__.py
i using:
- celery 3.1.11
- redis 2.8.8
the error trace states cause (as usual, reading bottom up)
importerror: no module named redis
you can check, if redis
installed
using pip
$ pip freeze
the output shall contain line starting redis=
install redis:
$ pip install redis
i use virtualenv
, sometime forget switch proper environment. in cases miss module expect present. switch proper virtual env or install missing module.
ps: basic trick becoming expert reading error messages , following it.
Comments
Post a Comment