celery-flower icon indicating copy to clipboard operation
celery-flower copied to clipboard

Cannot import name state: from celery.events.state import state

Open andrey-bublik opened this issue 11 years ago • 12 comments

I got this when trying to run celerymon:

# /usr/local/bin/celerymon
Traceback (most recent call last):
  File "/usr/local/bin/celerymon", line 9, in <module>
    load_entry_point('celerymon==1.0.3', 'console_scripts', 'celerymon')()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources.py", line 337, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources.py", line 2279, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources.py", line 1989, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/local/lib/python2.7/dist-packages/celerymon/bin/celerymon.py", line 44, in <module>
    from ..service import MonitorService
  File "/usr/local/lib/python2.7/dist-packages/celerymon/service.py", line 3, in <module>
    from .consumer import EventConsumer
  File "/usr/local/lib/python2.7/dist-packages/celerymon/consumer.py", line 4, in <module>
    from celery.events.state import state
ImportError: cannot import name state

Problem is pretty simple:

  1. Celery sources
/usr/local/lib/python2.7/dist-packages/celery/events/state.py:
...
class State(object):
"""Records clusters state."""
...
  1. And celerymon sources:
/usr/local/lib/python2.7/dist-packages/celerymon/consumer.py:
...
from celery.events.state import state
...

Obviously, need to import State instead of state - or vice versa? Can anybody comment on, confirm such bug and help to solve?

Ubuntu 11.10

# celery --version
/usr/local/lib/python2.7/dist-packages/celery/bin/base.py:149: UserWarning: Cannot load extension 'celerymon.bin.celerymon:MonitorDelegate': ImportError('cannot import name state',)
  'Cannot load extension {0!r}: {1!r}'.format(sym, exc))
3.1.0 (Cipater)

celerymon                 - Real-time monitoring of Celery workers.
  INSTALLED: 1.0.3 (latest)

andrey-bublik avatar Jan 29 '14 09:01 andrey-bublik

I get the same. Thanks for your analysis! I tried class state(State): pass in celery/events/state.py but get "AttributeError: type object 'MonitorDelegate' has no attribute 'leaf'" from bin/celery.py. The import error stays if I change from celery.events.state import State as state in celerymon/consumer.py,

fiee avatar Feb 22 '14 08:02 fiee

Issue #22 tries to fix this, seems the State object is something different than state. (Sorry, didn’t check earlier, found this thread here via Google.)

fiee avatar Feb 22 '14 08:02 fiee

Unfortunately, for me this problem was solved only after downgrading celery to version 3.0.

andrey-bublik avatar Feb 23 '14 06:02 andrey-bublik

I'm seeing this with celery 3.1 when running any of the celery commands (beat, worker, etc). Also have django-celery installed, but am using the new API (without djcelery.setup_loader()).

gtaylor avatar May 08 '14 04:05 gtaylor

Still running into this problem, one year later.

htch avatar Jan 18 '15 09:01 htch

Same error here too.

deepvoice avatar Feb 05 '15 16:02 deepvoice

Same error here, after update celery and django-celery to: celery==3.1.17 celery-with-redis==3.0 celerymon==1.0.3 django-celery==3.1.16

vladyslav2 avatar Mar 05 '15 17:03 vladyslav2

Same error here, as well.

ajferrick avatar Mar 26 '15 01:03 ajferrick

Same error

AGovorukha avatar Apr 17 '15 13:04 AGovorukha

Aparently, there's a pull request that solves this that's been waiting to be merged for quite some time.

https://github.com/celery/celerymon/pull/22

voodoonofx avatar Apr 23 '15 00:04 voodoonofx

Same here

$ pip freeze | grep celery
celery==3.1.17
celerymon==1.0.3
django-celery==3.1.16

ramusus avatar Oct 12 '15 21:10 ramusus

Update import statement from "from celery.events.state import state" to "from celery.events.state import State as state" in the below files. /usr/local/lib/python2.7/dist-packages/celerymon/handlers/api.py /usr/local/lib/python2.7/dist-packages/celerymon/consumer.py

AI-Pydev avatar Apr 16 '18 09:04 AI-Pydev