How to marshal a function?
Cliff Wells
logiplexsoftware at earthlink.net
Wed Nov 14 18:38:42 EST 2001
On Wednesday 14 November 2001 14:53, François Pinard wrote:
> I did not even try `pickle' for that, after the documentation (printed at
> 1.5.2 time) insists that `pickle' has no representation for code objects.
> If you examine `pc', you will have some difficulty to believe that it
> actually conveys the function definition. It probably only holds a
> reference to the name. Oh, it does works if I do everything in a single
> Python session, because `f' is already defined. But if I save `pc' to
> disk and reload it in a fresh Python session, the `pickle.loads(pc)'
> yields:
>
> SystemError: Failed to import class f from module __main__
>
> So, I would not think that `pickle' is a solution.
How embarrassing. I dug around and found the code I had used, and sure
enough, I was using marshal. Further, due to the way I was using the code
(the compiled bytecode was fairly self-contained) I never encountered the
limitations you mention.
Still, I think there must be a way around this... I will look further.
BTW, are you aware that you are double-posting?
--
Cliff Wells
Software Engineer
Logiplex Corporation (www.logiplex.net)
(503) 978-6726 x308
(800) 735-0555 x308
More information about the Python-list
mailing list