Celery: AttributeError : l'objet 'float' n'a pas d'attribut 'items'

Créé le 15 nov. 2018  ·  16Commentaires  ·  Source: celery/celery

lors de l'exécution de céleri - Un travailleur proj renvoie cette erreur

[2018-11-15 12:02:53,607: CRITICAL/MainProcess] Erreur irrécupérable : AttributeError("'float' object has no attribut 'items'")
Traceback (appel le plus récent en dernier) :
Fichier "/user/lib/python3.6/site-packages/celery/worker/worker.py", ligne 205, au début
self.blueprint.start(self)
Fichier "/user/lib/python3.6/site-packages/celery/bootsteps.py", ligne 119, au début
step.start(parent)
Fichier "/user/lib/python3.6/site-packages/celery/bootsteps.py", ligne 369, au début
retourner self.obj.start()
Fichier "/user/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", ligne 317, au début
blueprint.start(self)
Fichier "/user/lib/python3.6/site-packages/celery/bootsteps.py", ligne 119, au début
step.start(parent)
Fichier "/user/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", ligne 593, au début
c.loop( c.loop_args())Fichier "/user/lib/python3.6/site-packages/celery/worker/loops.py", ligne 91, dans asynloopsuivant(boucle)Fichier "/user/lib/python3.6/site-packages/kombu/asynchronous/hub.py", ligne 354, dans create_loopcb( cbargs)
Fichier "/user/lib/python3.6/site-packages/kombu/transport/redis.py", ligne 1040, dans on_readable
self.cycle.on_readable(fileno)
Fichier "/user/lib/python3.6/site-packages/kombu/transport/redis.py", ligne 337, dans on_readable
chan.handlers type
Fichier "/user/lib/python3.6/site-packages/kombu/transport/redis.py", ligne 724, dans _brpop_read
self.connection._deliver(loads(bytes_to_str(item)), dest)
Fichier "/user/lib/python3.6/site-packages/kombu/transport/virtual/base.py", ligne 983, dans _deliver
rappel (message)
Fichier "/user/lib/python3.6/site-packages/kombu/transport/virtual/base.py", ligne 632, dans _callback
self.qos.append(message, message.delivery_tag)
Fichier "/user/lib/python3.6/site-packages/kombu/transport/redis.py", ligne 149, en annexe
pipe.zadd(self.unacked_index_key, time(), delivery_tag) \
Fichier "/user/lib/python3.6/site-packages/redis/client.py", ligne 2263, dans zadd
pour la paire dans iteritems (mapping):
Fichier "/user/lib/python3.6/site-packages/redis/_compat.py", ligne 123, dans iteritems
retourner iter(x.items())
AttributeError : l'objet 'float' n'a pas d'attribut 'items'

Utilisation de Python 3.6.6, redis 3.0.0.post1

Commentaire le plus utile

Pas un problème de céleri - Semble être un problème avec Redis 3.0.0.post1 installé via pip.

Solution : Restaurer redis avec pip : pip install redis==2.10.6

tout fonctionne à nouveau pour moi.

Tous les 16 commentaires

J'obtiens une erreur très similaire ce matin :

[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

Pas un problème de céleri - Semble être un problème avec Redis 3.0.0.post1 installé via pip.

Solution : Restaurer redis avec pip : pip install redis==2.10.6

tout fonctionne à nouveau pour moi.

L'épinglage des dépendances est un problème de céleri. Semble être corrigé ici cependant
https://github.com/celery/celery/pull/5176

Pouvons-nous publier rapidement 4.2.2 pour résoudre ce problème, s'il vous plaît ?

Vous pouvez épingler la dépendance en dehors de Celery jusqu'à ce que cela soit corrigé.

Utilisateurs de Pipenv : ajoutez redis = "~=2.10.6" _avant_ l'entrée celery dans le Pipfile .

c'est corrigé dans le kombu et le maître du céleri

Pouvons-nous obtenir une version de correctif pour le céleri ?

Pas un problème de céleri - Semble être un problème avec Redis 3.0.0.post1 installé via pip.

Solution : Restaurer redis avec pip : pip install redis==2.10.6

tout fonctionne à nouveau pour moi.

Merci

Pouvons-nous obtenir une version de correctif pour le céleri ?

Une sortie de patch serait géniale !!!

Y a-t-il quelque chose que la communauté peut faire pour rendre cela possible le plus tôt possible ? Comme vous pouvez le voir, de nombreux projets connexes font référence à ce problème et identifient la version redis.

J'ai sorti un patch pour kombu. Cela devrait résoudre le problème.
Veuillez vous abonner aux notifications de publication sur nos référentiels au lieu de nous contacter.

Pas un problème de céleri - Semble être un problème avec Redis 3.0.0.post1 installé via pip.

Solution : Restaurer redis avec pip : pip install redis==2.10.6

tout fonctionne à nouveau pour moi.

Travaillé merci !!

Il devrait être corrigé dans la dernière mise à jour : Celery 4.3.0 (kobu 4.5.0).
Vous n'avez pas besoin de restaurer la version redis.

Il devrait être corrigé dans la dernière mise à jour : Celery 4.3.0 (kobu 4.5.0).
Vous n'avez pas besoin de restaurer la version redis.

C'est vrai que ça marche dans mon cas.

Salut,
Je reçois un problème AttributeError : l'objet 'float' n'a pas d'attribut 'item'
lors de l'exécution des rappels de fonction de rappel = [checkpointer, earlystopper, lr_reducer, TensorBoardColabCallback(tbc)]
qui appellent /usr/local/lib/python3.6/dist-packages/tensorboardcolab/callbacks.py
J'ai installé install redis = = 2.10.6, le problème persiste.
J'utilise google colab.

@ dhanashri88 - Je ne pense pas que ce soit un problème de céleri. Votre rapport/retrace de problème n'est pas complet, mais il semble qu'il s'agisse d'un problème de tensorboard. Veuillez demander de l'aide à leur canal d'assistance/liste de diffusion/problèmes github.

Cette page vous a été utile?
0 / 5 - 0 notes