On Saturday 30 June 2007 10:07, jim-on-linux wrote: > On Saturday 30 June 2007 04:52, > [EMAIL PROTECTED] > > wrote: > > Hi, > > > > I'm not a Win ME fan myself (I'm a Mac user), > > but I'm here in Thailand developing software > > for special-needs kids, and the test PC in my > > home office is a Win ME machine (sigh). So > > when I ported my Python program today to the > > PC, it quickly crashed. Everything seems to > > work except for shelve. Using the latest > > version of Python (2.5.1), when I do the > > following in IDLE on the Win ME machine > > here's the result: > > > > Python 2.5.1 (r251:54863, Apr 18 2007, > > 08:51:08) [MSC v.1310 32 bit (Intel)] on > > win32 IDLE 1.2.1 > > > > >>> import shelve > > >>> f=shelve.open("foo") > > > > Traceback (most recent call last): > > File "<pyshell#1>", line 1, in <module> > > f=shelve.open("foo") > > File "C:\PYTHON25\lib\shelve.py", line 225, > > in open return DbfilenameShelf(filename, > > flag, protocol, writeback) > > File "C:\PYTHON25\lib\shelve.py", line 209, > > in __init__ > > Shelf.__init__(self, > > anydbm.open(filename, flag), protocol, > > writeback) > > File "C:\PYTHON25\lib\anydbm.py", line 83, > > in open return mod.open(file, flag, mode) > > File "C:\PYTHON25\lib\dbhash.py", line 16, in > > open return bsddb.hashopen(file, flag, mode) > > File "C:\PYTHON25\lib\bsddb\__init__.py", > > line 306, in hashopen > > d.open(file, db.DB_HASH, flags, mode) > > DBError: (5, 'Input/output error') > > > > > > For those who know shelve, this should > > actually run fine (if the file "foo" does not > > exist it should create it). Printing the > > value of "f" should show an empty dictionary > > {}. > > > > It does run fine on my iBook (under Python > > 2.4.4) and on my iBook's Virtual PC running > > Win XP & Python 2.5.0. I do not think this is > > a Python 2.5.1 problem, because my first > > attempt to run my program on the Win ME > > machine was with a version of the program I > > ported using Py2exe on the VPC under Python > > 2.5.0, and it crashed the same way when run > > on the Win ME machine (I subsequently > > installed Python on the Win ME PC to try to > > get to the root of the problem.) > > > > Help! How do I get Win ME (or at least the > > misbehaving Win ME machine in my office) to > > run shelve? (or more specifically run bsddb's > > hashopen?) > > > > Or should I trash shelve entirely and rewrite > > all my code to use a simpler, homemade > > database scheme? > > > > Thanks for any advice! > > > > Warmly, > > Joel > > [EMAIL PROTECTED] > > what version of py2exe are you using? > > I had a similar problem with an old version of > py2exe but it it is fixed now. If my memory is > correct I had to import dbhash into my setup > for py2exe back then to fix it.. > > Your code for shelve is correct, the problem is > someplace else. > > > jim-on-linux > http:\\www.inqvista.com
Correction: I had to import dbhash into my program to make things work. jim-on-linux http:\\www.inqvista.com -- http://mail.python.org/mailman/listinfo/python-list