Celery: AttributeError: объект 'float' не имеет атрибута 'items'

Созданный на 15 нояб. 2018  ·  16Комментарии  ·  Источник: celery/celery

при запуске сельдерея -A proj worker выдает эту ошибку

[2018-11-15 12: 02: 53,607: CRITICAL / MainProcess] Неустранимая ошибка: AttributeError («объект 'float' не имеет атрибута 'items'»,)
Отслеживание (последний вызов последний):
Файл "/user/lib/python3.6/site-packages/celery/worker/worker.py", строка 205, в начале
self.blueprint.start (сам)
Файл "/user/lib/python3.6/site-packages/celery/bootsteps.py", строка 119, в начале
step.start (родительский)
Файл "/user/lib/python3.6/site-packages/celery/bootsteps.py", строка 369, в начале
вернуть self.obj.start ()
Файл "/user/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", строка 317, в начале
blueprint.start (сам)
Файл "/user/lib/python3.6/site-packages/celery/bootsteps.py", строка 119, в начале
step.start (родительский)
Файл "/user/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", строка 593, в начале
c.loop ( c.loop_args ())Файл "/user/lib/python3.6/site-packages/celery/worker/loops.py", строка 91, в asynloopследующий (цикл)Файл "/user/lib/python3.6/site-packages/kombu/asynchronous/hub.py", строка 354, в create_loopcb ( cbargs)
Файл "/user/lib/python3.6/site-packages/kombu/transport/redis.py", строка 1040, в on_readable
self.cycle.on_readable (fileno)
Файл "/user/lib/python3.6/site-packages/kombu/transport/redis.py", строка 337, в on_readable
тип chan.handlers
Файл "/user/lib/python3.6/site-packages/kombu/transport/redis.py", строка 724, в _brpop_read
self.connection._deliver (загружает (bytes_to_str (элемент)), dest)
Файл "/user/lib/python3.6/site-packages/kombu/transport/virtual/base.py", строка 983, в _deliver
обратный звонок (сообщение)
Файл "/user/lib/python3.6/site-packages/kombu/transport/virtual/base.py", строка 632, в _callback
self.qos.append (сообщение, message.delivery_tag)
Файл "/user/lib/python3.6/site-packages/kombu/transport/redis.py", строка 149, в добавлении
pipe.zadd (self.unacked_index_key, time (), delivery_tag) \
Файл "/user/lib/python3.6/site-packages/redis/client.py", строка 2263, в zadd
для пары в iteritems (отображение):
Файл "/user/lib/python3.6/site-packages/redis/_compat.py", строка 123, в iteritems
вернуть iter (x.items ())
AttributeError: объект 'float' не имеет атрибута 'items'

Используя Python 3.6.6, redis 3.0.0.post1

Самый полезный комментарий

Не проблема с сельдереем - похоже, проблема с Redis 3.0.0.post1, установленным через pip.

Решение: откатить Redis с помощью pip: pip install redis==2.10.6

у меня снова все работает.

Все 16 Комментарий

Сегодня утром я получаю очень похожую ошибку:

[2018-11-15 09:55:33,342: CRITICAL/MainProcess] Unrecoverable error: AttributeError("'float' object has no attribute 'iteritems'",)
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/worker.py", line 205, in start
    self.blueprint.start(self)
  File "/usr/local/lib/python2.7/dist-packages/celery/bootsteps.py", line 119, in start
    step.start(parent)
  File "/usr/local/lib/python2.7/dist-packages/celery/bootsteps.py", line 369, in start
    return self.obj.start()
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer/consumer.py", line 317, in start
    blueprint.start(self)
  File "/usr/local/lib/python2.7/dist-packages/celery/bootsteps.py", line 119, in start
    step.start(parent)
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer/consumer.py", line 593, in start
    c.loop(*c.loop_args())
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/loops.py", line 91, in asynloop
    next(loop)
  File "/usr/local/lib/python2.7/dist-packages/kombu/asynchronous/hub.py", line 354, in create_loop
    cb(*cbargs)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/redis.py", line 1040, in on_readable
    self.cycle.on_readable(fileno)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/redis.py", line 337, in on_readable
    chan.handlers[type]()
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/redis.py", line 724, in _brpop_read
    self.connection._deliver(loads(bytes_to_str(item)), dest)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/virtual/base.py", line 983, in _deliver
    callback(message)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/virtual/base.py", line 632, in _callback
    self.qos.append(message, message.delivery_tag)
  File "/usr/local/lib/python2.7/dist-packages/kombu/transport/redis.py", line 149, in append
    pipe.zadd(self.unacked_index_key, time(), delivery_tag) \
  File "/usr/local/lib/python2.7/dist-packages/redis/client.py", line 2263, in zadd
    for pair in iteritems(mapping):
  File "/usr/local/lib/python2.7/dist-packages/redis/_compat.py", line 94, in iteritems
    return x.iteritems()
AttributeError: 'float' object has no attribute 'iteritems'

Python 2.7, Redis 3.0.0.post1

Не проблема с сельдереем - похоже, проблема с Redis 3.0.0.post1, установленным через pip.

Решение: откатить Redis с помощью pip: pip install redis==2.10.6

у меня снова все работает.

Закрепление зависимостей - это проблема сельдерея. Хотя, похоже, здесь исправят
https://github.com/celery/celery/pull/5176

Можем ли мы быстро выпустить 4.2.2, чтобы решить эту проблему?

Вы можете закрепить зависимость вне Celery, пока это не будет исправлено.

Пользователи Pipenv: добавьте redis = "~=2.10.6" _before_ в запись celery в Pipfile .

это зафиксировано в мастере комбу и сельдерея

Можно ли получить патч для сельдерея?

Не проблема с сельдереем - похоже, проблема с Redis 3.0.0.post1, установленным через pip.

Решение: откатить Redis с помощью pip: pip install redis==2.10.6

у меня снова все работает.

Благодарность

Можно ли получить патч для сельдерея?

Было бы здорово выпустить патч !!!

Может ли сообщество что-то сделать, чтобы это стало возможным раньше, чем позже? Как видите, многие связанные проекты ссылаются на эту проблему и закрепляют версию Redis.

Я выпустил патч для комбу. Это должно решить проблему.
Подпишитесь на уведомления о выпусках в наших репозиториях вместо того, чтобы пинговать нас.

Не проблема с сельдереем - похоже, проблема с Redis 3.0.0.post1, установленным через pip.

Решение: откатить Redis с помощью pip: pip install redis==2.10.6

у меня снова все работает.

Сработало спасибо !!

Это должно быть исправлено в последнем обновлении: Celery 4.3.0 (kobu 4.5.0).
Откатывать версию Redis не нужно.

Это должно быть исправлено в последнем обновлении: Celery 4.3.0 (kobu 4.5.0).
Откатывать версию Redis не нужно.

Правда, в моем случае это работает.

Привет,
Я получаю ошибку AttributeError: объект 'float' не имеет атрибута 'item'
при выполнении функции обратного вызова callbacks = [checkpointer, earlystopper, lr_reducer, TensorBoardColabCallback (tbc)]
которые вызывают /usr/local/lib/python3.6/dist-packages/tensorboardcolab/callbacks.py
У меня есть install install redis == 2.10.6, проблема не устранена.
Я использую Google Colab.

@ dhanashri88 - Я не думаю, что это проблема сельдерея. Ваш отчет о проблеме / отслеживание неполадок не завершен, но похоже, что это проблема с тензорной платой. Обратитесь за помощью к их каналу поддержки / списку рассылки / вопросам github.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги