2013-03-10 2 views
1

J'utilise Windows 7 64 bits. J'ai installé les dernières versions de billard, django-céleri et kombu. J'inclus:Exécution django-céleri sur les fenêtres. EOFError

import djcelery 
djcelery.setup_loader() 

à mon projet setting.py

Quand je lance ce qui suit de la racine de mon projet:

python manage.py celeryd -l info 

Je reçois le message suivant (ce qui est le dernier partie du message):

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 

J'ai installé MinGW et ajouté distutils. cfg à c: \ MinGW \ bin, mais il n'a pas aidé

Merci

+0

Juste pour référence, cela semble un peu comme cette question: http://stackoverflow.com/questions/35304529/cant-start-celery-worker -on-windows-10-with-picklingerror/36092836 # 36092836 Le problème pourrait être résolu en utilisant 'config_from_object' avec une chaîne qui n'est pas un objet. – jeverling

Répondre

1

Vérifiez cette discussion sur github:

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

Une solution est que vous changez le céleri/app/base.py (lignes 418-419) dans la asksol manière y propose:

de:

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

à:

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

Il devrait alors fonctionner correctement

+0

Merci mais quand j'applique cette modification et exécute la commande, elle entre dans une boucle sans fin avec la même erreur – guyyug