From: Matt S. [EMAIL PROTECTED]
To: Luke Dunstan [EMAIL PROTECTED]
Subject: Re: [PythonCE] pickle problem on 2.3.4 pythonCE (for wxPython)
Date: Sat, 27 May 2006 20:25:46 -0700
Python 2.3.4 is the only Python interpreter I've seen wxPython
compiled with for CE. Did it work for you on 2.3.4 or 2.4.3? If it
did work on 2.4.3 for you do you have wxPython running as well?
Thanks for the follow up.
Matt
Yes, 2.4.3. Sorry, I don't have wxPython running as well. You might want to
try 2.3.5 but I haven't tried it so there is no guarantee that it will fix
the problem.
Luke
On 5/27/06, Luke Dunstan [EMAIL PROTECTED] wrote:
Hi,
Your test program works for me on PythonCE 2.4.3.
Luke
- Original Message -
From: Matt S. [EMAIL PROTECTED]
To: pythonce@python.org
Sent: Saturday, May 27, 2006 3:47 AM
Subject: [PythonCE] pickle problem on 2.3.4 pythonCE (for wxPython)
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