shelve.open generates (22, 'Invalid argument') Os X 10.5 with Python 2.5

seth hklasky at gmail.com
Tue Feb 9 22:42:39 CET 2010


There is something you could possibly help me with.

We have a code that creates a simple Python shelve database. We are
able to serialize objects and store them in the dbm file. This seem to
work the same on Windows XP Python 2.5, Ubuntu 9.1 with Python 2.6,
but on Os X 10.5 with Python 2.5 the database filename is changed by
the operating system by attaching the .db extension to it. Does an one
know why is that?

What is worse, at the time of reading it  we get the  error below the
extracted code, on Os X 10.5:

        if os.path.exists( tarname )and tarfile.is_tarfile( tarname ):
            try:
                datastore_tarfile=tarfile.open( tarname, 'r:gz' )
                print "Successfully opened the tarball: %s"%tarname
                members=datastore_tarfile.getnames()
                for dbmFile in members:
                    datastore_tarfile.extract( dbmFile )
                    print "Extracting Realizations File: %s"%dbmFile

                realizations=shelve.open( dbmFile, 'c', 2, writeback =
False )

Successfully opened the tarball: datastore.tar.gz
Extracting Realizations File: realizations.dbm.db
<class 'bsddb.error'>
(22, 'Invalid argument')

This does not happen on Windows XP with Python 2.5.
Does anyone know what is happening on Os X?
Any comments and suggestions will be greatly appreciated. Thank you
very much in advance.



More information about the Python-list mailing list