sbt <shibt...@gmail.com> added the comment: This is not specific to multiprocessing. It is really an issue with the pickling of exceptions:
>>> import cPickle >>> class BadExc(Exception): ... def __init__(self, a): ... '''Non-optional param in the constructor.''' ... self.a = a ... >>> a = cPickle.dumps(BadExc(1)) >>> cPickle.loads(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: ('__init__() takes exactly 2 arguments (1 given)', <class '__main__.BadExc'>, ()) I think that when you create a new exception class with an __init__() method, you need to make sure that self.args is set properly by calling the __init__() method of the parent class using the same arguments. So you can instead do class BadExc(Exception): def __init__(self, a): '''Non-optional param in the constructor.''' Exception.__init__(self, a) self.a = a ---------- nosy: +sbt _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue13751> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com