Hi, I'm trying to make a data collection UI for Windows CE using the wxPyCE distribution (which uses Python 2.3.4) found at,
http://www.traybor.com/PythonCE/ It's gone well so far but I'm running into a serious data pickling problem. Ideally I would like to pickle a class instance. Saving and loading the pickled class works fine on my PC (Python 2.4x), *pickleDump.py* f = open('pickle_file.pyp', 'r') pickle.dump(my_class_instance, f) *pickleLoad.py* f = open('saved_pickle.pyp', 'r') my_pickled_class_instance = pickle.load(f) In my UI module the pickling are methods in a class. Also, "my_class" is actually, "another_module.top_level_class.data," wherein ".data" is a dictionary with keys that are person names and values that are the corresponding person instance. Realizing that I'm probably breaking the pickling rules with pickling my data class, I changed "my_class" in *pickleDump.py* to a simple dictionary... and it still failed on CE. Fortunately, simplifying my data to a simple list does pickle. So, in the worst case I can convert my data into lists (not pretty so if you have a better workaround idea I'd really appreciate it). Here's the traceback from my attempt to load the pickled dictionary, Traceback (most recent call last): File "\Program Files\python\dev\pickleLoad.py", line 10, in ? var = pickle.load(f) File "binaries\lib\pickle.py", line 1390, in load File "binaries\lib\pickle.py", line 872, in load File "binaries\lib\pickle.py", line 985, in load_string LookupError: no codec search functions registered: can't find encoding Here are my test modules, *pickleDump.py* import pickle, traceback, sys f = open('test.txt','w') error = open('dump_error.txt','w') sys.stderr = error log = open('dump_out.txt','w') sys.stdout = log #var = [n for n in range(10)] var = {'parm1':1, 'parm2':'2a'} try: pickle.dump(var,f) print 'Pickled dumped OK in,', __file__ except: traceback.print_exc() print 'Pickle dump failed! in', __file__ f.close() *pickleLoad.py* import pickle, sys, traceback e = open('load_error.txt','w') sys.stderr = e s = open('load_out.txt','w') sys.stdout = s try: f = open('test.txt','r') var = pickle.load(f) print 'Pickle loaded OK in,', __file__ print var except: traceback.print_exc() print 'Pickle not loaded in,', __file__ Many thanks for your help, Matt _______________________________________________ PythonCE mailing list PythonCE@python.org http://mail.python.org/mailman/listinfo/pythonce