[C++-sig] inner class pickle issue

Grant gtang at bcm.edu
Fri Oct 5 00:36:12 CEST 2007


I am trying to write pickle support for an inner class by using
boost.pyhton. But it always fail with this error message:

>>> pickle.dump(k,mm)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.5/pickle.py", line 1362, in dump
    Pickler(file, protocol).dump(obj)
  File "/usr/lib64/python2.5/pickle.py", line 224, in dump
    self.save(obj)
  File "/usr/lib64/python2.5/pickle.py", line 331, in save
    self.save_reduce(obj=obj, *rv)
  File "/usr/lib64/python2.5/pickle.py", line 400, in save_reduce
    save(func)
  File "/usr/lib64/python2.5/pickle.py", line 295, in save
    self.save_global(obj)
  File "/usr/lib64/python2.5/pickle.py", line 748, in save_global
    (obj, module, name))
pickle.PicklingError: Can't pickle <class 'libpyUtils2.KaiserBessel'>: it's
not found as libpyUtils2.KaiserBessel

Can I pickle an inner class? Or only the top level class can be pickled?

Grant




More information about the Cplusplus-sig mailing list