2013-03-10 4 views
1

Я использую Windows 7 64 бит. Я установил последние версии бильярда, джанго-сельдерея и комбу. я включил:Запуск 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-with-picklingerror/36092836 # 36092836 Там проблема может быть решена с помощью 'config_from_object' со строкой, не являющейся объектом. – jeverling

ответ

1

Проверить это обсуждение на GitHub:

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

Обходной является то, что вы измените сельдерея/приложение/base.py (строки 418-419) в пути asksol предлагает там:

от:

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