shelve error bei Verwendung auf mehreren Maschinen.

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Alter
User
Beiträge: 2
Registriert: Mittwoch 21. Juli 2010, 20:23

Guten Tag allerseits,

ich habe ein Problem mit der Verwendung von shelve auf mehreren Maschinen. Ich habe eine Datei auf meinem Rechner erstellt, und versuche jetzt ein Script welches damit arbeitet auf dem Uniserver laufen zu lassen. Leider wirft dieses einen Error, hier mal Traceback:

Traceback (most recent call last):
File "pprintPairs.py", line 51, in <module>
printPairs("corpus", False, None, None, sys.argv[1], sys.argv[2])
File "pprintPairs.py", line 15, in printPairs
myPairs = shelve.open(pairs)
File "/usr/lib/python2.5/shelve.py", line 225, in open
return DbfilenameShelf(filename, flag, protocol, writeback)
File "/usr/lib/python2.5/shelve.py", line 209, in __init__
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
File "/usr/lib/python2.5/anydbm.py", line 83, in open
return mod.open(file, flag, mode)
File "/usr/lib/python2.5/dbhash.py", line 16, in open
return bsddb.hashopen(file, flag, mode)
File "/usr/lib/python2.5/bsddb/__init__.py", line 310, in hashopen
d.open(file, db.DB_HASH, flags, mode)
bsddb.db.DBInvalidArgError: (22, 'Invalid argument -- ./evenMoreFilteredPairs_person: unsupported hash version: 9')

Ich vermute, dass das kein wirkliches Problem von Python, sondern der zugrundeliegenden Datenbank Architektur ist? Weiß jemand, wie ich mein shelf konvertieren, oder die Datenbanksettings anpassen kann? Leider kann ich das shelf nicht nocheinmal neu erstellen (das würde natürlich funktionieren, aber die Daten existieren nicht mehr.). Für beide Rechner sagt mir whichdb, dass dbhash verwendet wird.

Thanks
Alter
User
Beiträge: 2
Registriert: Mittwoch 21. Juli 2010, 20:23

Ich habe selbst eine Lösung gefunden, falls also mal jemand in dieses Problem rennen sollte:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469770
Antworten