2010-06-01 74 views
3

我张贴这个问题(和答案),所以如果其他人在未来有这个问题,你就可以google一下。错误运行celeryd

如果你想在Django这样运行celeryd:

python manage.py celeryd 

您可以接收它已开始后立即出现以下错误:

[email protected] 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

你缺少settings.py芹菜设置一样。在我的情况下,它是由一个错字造成的(我错过了一个“S”在BROKER_PASSWORD)。仔细检查你包括所有必要的设置,并且每一个拼写正确的一切,你会避免因为自己的屁股就像我今天:)