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

Popular posts from this blog

php - render data via PDO::FETCH_FUNC vs loop -

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

The canvas has been tainted by cross-origin data in chrome only -