2013-03-10 91 views
1

我正在使用Windows 7 64位。 我安装了台球,django芹菜和kombu的最新版本。 我包括:在窗户上运行django芹菜。 EOFError

import djcelery 
djcelery.setup_loader() 

到我的项目setting.py

当我运行从我的项目的根目录下:

python manage.py celeryd -l info 

我碰到下面的信息(这是最后一次部分消息):

File "c:\python27\lib\pickle.py", line 562, in save_tuple 
    save(element) 
    File "c:\python27\lib\pickle.py", line 286, in save 
    f(self, obj) # Call unbound method with explicit self 
    File "c:\python27\lib\pickle.py", line 548, in save_tuple 
    save(element) 
    File "c:\python27\lib\pickle.py", line 306, in save 
    rv = reduce(self.proto) 
    File "c:\python27\lib\site-packages\celery\app\base.py", line 412, in __reduce__ 
    (self.__class__, self.Pickler) + self.__reduce_args__(), 
    File "c:\python27\lib\site-packages\celery\app\base.py", line 422, in __reduce_args__ 
    else self.conf._pickleable_changes()) 
    File "c:\python27\lib\site-packages\celery\app\utils.py", line 77, in _pickleable_changes 
    R.update(d) 
TypeError: 'LazySettings' object is not iterable 

C:\sources\tourtle>Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "c:\python27\lib\site-packages\billiard\forking.py", line 530, in main 
    self = load(from_parent) 
    File "c:\python27\lib\pickle.py", line 1378, in load 
    return Unpickler(file).load() 
    File "c:\python27\lib\pickle.py", line 858, in load 
    dispatch[key](self) 
    File "c:\python27\lib\pickle.py", line 880, in load_eof 
    raise EOFError 
EOFError 

我安装了MinGW并添加了distutils。 CFG到c:\ MinGW的\ BIN,但它并没有帮助

感谢

+0

仅供参考,这听起来有点像这样的问题:http://stackoverflow.com/questions/35304529/cant-start-celery-worker -on-windows-10-pick-pickerror/36092836#36092836 问题可以通过使用'config_from_object'来解决,而不是使用字符串。 – jeverling 2016-03-18 20:51:19

回答

1

检查GitHub上讨论:

https://github.com/celery/django-celery/issues/228

一种解决方法是,更改芹菜/应用/ base.py的方式asksol(线418-419)中提出有:

从:

conf = (self.conf.changes if _forking._forking_is_enabled 
     else self.conf._pickleable_changes())' 

到:

conf = (self.conf.changes if _forking._forking_is_enabled 
     else {}) 

然后,它应该工作正常

+0

谢谢,但是当我应用此更改并运行该命令时,它将进入永不结束的循环,并出现相同的错误 – guyyug 2013-03-11 17:29:23