Re: shelve crashing under Win ME
- From: jim-on-linux <inq1ltd@xxxxxxxxxxx>
- Date: Sat, 30 Jun 2007 10:07:29 -0400
On Saturday 30 June 2007 04:52, gluckj@xxxxxxxxx
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
joelgluck@xxxxxxxxx
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
.
- References:
- shelve crashing under Win ME
- From: gluckj
- shelve crashing under Win ME
- Prev by Date: Re: Building a Python app with Mozilla
- Next by Date: linecache and comparison with input
- Previous by thread: shelve crashing under Win ME
- Next by thread: Re: shelve crashing under Win ME
- Index(es):
Relevant Pages
|