Running django-celery on windows. EOFError
Question: I am using windows 7 64 bit. I installed the latest versions of billiard,
django-celery,and kombu. I included:

    
    
    import djcelery
    djcelery.setup_loader()
    

to my project setting.py

When I run the following from the root of my project:

    
    
    python manage.py celeryd -l info
    

I get the following message (this is the last part of the 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
    

I installed MinGW and added distutils.cfg to c:\MinGW\bin but it did not help

Thanks


Answer: Check this discussion on github:

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

A workaround is that you change celery/app/base.py (lines 418-419) in the way
asksol proposes there:

from:

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

to:

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

It should then work fine

