Re: [PythonCE] pickle problem on 2.3.4 pythonCE (for wxPython)

2006-05-27 Thread Luke Dunstan
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


Re: [PythonCE] pickle problem on 2.3.4 pythonCE (for wxPython)

2006-05-27 Thread Luke Dunstan

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