Graham Dumpleton
grahamd at dscpl.com.au
Tue Oct 4 02:16:07 EDT 2005
Nicolas Lehuen wrote .. > > As explained in the error message, function objects can't be pickled. This > is not a mod_python limitation, rather a Python limitation. Hmmm, the pickle module documentation at: http://docs.python.org/lib/node66.html says: The following types can be pickled: ... - functions defined at the top level of a module It does however say: Note that functions (built-in and user-defined) are pickled by ``fully qualified'' name reference, not by value. This means that only the function name is pickled, along with the name of module the function is defined in. Neither the function's code, nor any of its function attributes are pickled. Thus the defining module must be importable in the unpickling environment, and the module must contain the named object, otherwise an exception will be raised. Note the requirement on the module being importable in the unpickling environment. Since it wasn't imported and present in "sys.modules" to begin with, I would say it is able to detect the potential for problems at pickling time instead of later. But then, I could still be wrong. :-) Graham
|