So far what I've found is python protocol buffer objects are not serializable using Pickle.
On Apr 25, 3:55 pm, vish <vishi...@gmail.com> wrote: > Environment: CentOS 64bit > Python 2.6 > Protocol Buffers 2.4.0.a > Python client with Native C++ support > python protocol buffers installed to ~/protobuf > LD_LIBRARY_PATH=~/protobuf/lib:~/protobuf/google/protobuf/src/.libs > PYTHONPATH=:~/protobuf/:.:~/protobuf/google/protobuf/src/.libs:~/ > protobuf/lib > > Hi, > In a multiprocessing environment, my code is trying to add decoded > messages to a shared Queue, and then pop them off at a later stage. > > Inserting messages in the Queue is working fine. But while fetching > those messages, am getting this error: > > Traceback (most recent call last): > File "/usr/lib64/python2.6/multiprocessing/queues.py", line 242, in > _feed > send(obj) > PicklingError: Can't pickle <type > 'google3.net.google.protobuf.python.internal._net_proto2___python.CMessage' >: > import of module > google3.net.google.protobuf.python.internal._net_proto2___python > failed > > Verified LD_LIBRARY_PATH, LD_RUN_PATH, PYTHONPATH and they all seem to > be valid. Anyway help in solving this problem is appreciated. > > Inserting messages to Queue: > > while not self.stopped(): > el = self.rcvr.next_message() > if el is not None: > print "%s is the event"%el > Q.put(el) > > Popping messages off Queue: > > def next_message(self): > """Returns next event (if available) from Queue""" > return Q.get() > > where Q is multiprocessing.Queue -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to protobuf@googlegroups.com. To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.