Я получаю следующую ошибку при использовании многопроцессорной обработки:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 525, in __bootstrap_inner
self.run()
File "/usr/lib/python2.6/threading.py", line 477, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/python2.6/multiprocessing/pool.py", line 282, in _handle_results
task = get()
UnpicklingError: NEWOBJ class argument has NULL tp_new
Я понятия не имею, что это значит, хотя на уровне Си это звучит как-то не так. Кто-нибудь может пролить свет на это?
ОБНОВЛЕНИЕ : Хорошо, поэтому я понял, как это исправить. Но я все еще немного озадачен. Я возвращаю экземпляр этого класса:
class SpecData(object):
def __init__(self, **kwargs):
self.__dict__.update(**kwargs)
def to_dict(self):
return self.__dict__
Если я возвращаю экземпляр этого объекта, я получаю ошибку. Однако если я позвоню to_dict
и верну словарь, это сработает. Что я делаю не так?