I’m writing a web application that talks over network socket to a server that I develop in python. To simplify things I decided to pack the data into a class and transfer it after pickling.
To test the concept I’ve written a code that pickles the class and unpickles it but it doesn’t work. Same code runs in python interpreter. Below is the code and the error I get:
class testClass:
def __init__(self):
self.blah = 'bleh'
self.meaning = 42
self.isComplete = False
def dumpy(self):
print self.blah
print self.meaning
print self.isComplete
def index():
foo = testClass()
p_foo = pickle.dumps(foo)
foo = pickle.loads(p_foo)
foo.dumpy()
This is the error:
ImportError: No module named
_mp_11b334e84556201b42d59ca560e0f6adMODULE CACHE DETAILS
Accessed: Fri May 20 16:23:51
2011 Generation: 0_mp_11b334e84556201b42d59ca560e0f6ad {
FileName: ‘/var/www/stormstation-web/sea_monitor/management_client.py’
Instance: 1 [IMPORT]
Generation: 1
Modified: Fri May 20 16:23:47 2011
Imported: Fri May 20 16:23:51 2011
}
Yes, this is the case.
You cannot easily use pickled classes, functions or class instances with mod_python.
This document describes the problem from the point of view of Sessions, but still applies to your usage:
http://www.dscpl.com.au/wiki/ModPython/Articles/IssuesWithSessionObjects
Basic problem:
Summarising: