运行celeryd时出错

时间:2010-06-01 18:56:47

标签: python django celery

我发布了这个问题(和回答),所以如果其他人在将来遇到这个问题,你就可以谷歌了。

如果您正试图在Django中运行celeryd,那么:

python manage.py celeryd

您可以在启动后立即收到以下错误:

celery@eric-desktop-dev has started.
Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  <... snip ...>
  File "/usr/local/lib/python2.6/dist-packages/amqplib-0.6.1-py2.6.egg/amqplib/client_0_8/connection.py", line 134, in __init__
    self._x_start_ok(d, login_method, login_response, locale)
  File "/usr/local/lib/python2.6/dist-packages/amqplib-0.6.1-py2.6.egg/amqplib/client_0_8/connection.py", line 704, in _x_start_ok
    args.write_longstr(response)
  File "/usr/local/lib/python2.6/dist-packages/amqplib-0.6.1-py2.6.egg/amqplib/client_0_8/serialization.py", line 352, in write_longstr
    self.write_long(len(s))
TypeError: object of type 'NoneType' has no len()

一个相当神秘的错误消息,没有真正的线索来确定解决问题的方法。请参阅下面的答案,这样您就不会像我今天那样浪费大量时间来处理此错误:)

1 个答案:

答案 0 :(得分:1)

您错过了settings.py中的芹菜设置。在我的情况下,它是由一个错字引起的(我错过了BROKER_PASSWORD中的'S')。仔细检查你是否包含了所有必需的设置,并且每个设置都拼写正确,你将避免像我今天那样做自己的屁股:)