[IronPython] Problem with pickle.load of user defined classes created from cPython 2.5.

Michael Foord fuzzyman at voidspace.org.uk
Mon Apr 13 17:28:49 CEST 2009


Vineet Jain (gmail) wrote:
>
> I’m trying to load pickled user defined classes from iron python. The 
> pickled object was created using cpython 2.5 on an ubuntu box. I can 
> load them fine with cpython 2.5 on a windows box. However when I load 
> them from ironpython I get the following incomplete stack trace:
>
> c:\trading\pytrade\modules\apiscripts\models>ipy test_pickle.py
>
> Traceback (most recent call last):
>
> File "test_pickle.py", line 20, in test_pickle.py
>
> File "test_pickle.py", line 13, in loadTrades
>
> File "c:\Program Files\IronPython 2.0.1\Lib\pickle.py", line 1370, in load
>
> File "c:\Program Files\IronPython 2.0.1\Lib\pickle.py", line 858, in load
>
> KeyError: [
>
> Any ideas on how I can go about debugging this? Is pickle.load of user 
> defined classes from cPython supported?
>


That isn't enough information to diagnose the problem. The short answer 
is that yes, IronPython does support the unpickling of user defined 
classes created in CPython:

C:\compile>python
Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit 
(Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> from test import Test
 >>> from pickle import dumps
 >>> t = Test()
 >>> open('instance.pkl', 'wb').write(dumps(t))
 >>>

C:\compile>"C:\Program Files (x86)\IronPython 2.0.1\ipy.exe"
IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.3074
Type "help", "copyright", "credits" or "license" for more information.
 >>> import test
 >>> from pickle import loads
 >>>
 >>> t = loads(open('instance.pkl').read())
 >>> t
<Test object at 0x000000000000002B>
 >>>

In the example above the module test.py contains only:

class Test(object):
pass

All the best,

Michael


> Thanks,
>
> Vineet
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>   


-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog





More information about the Ironpython-users mailing list