Shelve: No locks available

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
h_e_i_k_o

Shelve: No locks available

Beitragvon h_e_i_k_o » Montag 1. September 2003, 10:21

Hallo,

ich spiele gerade mit Shelve rum, komme allerdings nicht weit, da Python bei dem Versuch, ein Datenbankobjekt anzulegen, folgenden Fehler bringt:

Code: Alles auswählen

>>> import shelve
>>> f = shelve.open('foo', 'c')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.2/shelve.py", line 158, in open
    return DbfilenameShelf(filename, flag)
  File "/usr/lib/python2.2/shelve.py", line 148, in __init__
    Shelf.__init__(self, anydbm.open(filename, flag))
  File "/usr/lib/python2.2/anydbm.py", line 86, in open
    return mod.open(file, flag, mode)
dbm.error: (37, 'No locks available')


Was geht da schief?

Danke und Gruß,
Heiko
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Beitragvon Milan » Montag 1. September 2003, 10:55

Das mit Shelve ist so eine Sache... Shelve wird mit Hilfe von Pickle und anydbm realisiert, wobei anydbm irgendwein auf dem system verfügbares dbm ist. Hier ist das Bildungsflag nicht immer "c", sondern manchmal auch "n". Nach der Erstellung kann eine shelve-Datenbank immer mit "r" oder "w" geöffnet werden. Probier also mal das (Python versucht dann intern alle Möglichkeiten zur Bildung)

Code: Alles auswählen

f = shelve.open('foo')
h_e_i_k_o

Beitragvon h_e_i_k_o » Montag 1. September 2003, 11:27

das hatte ich vorher auch schon probiert :-)
ich hab schon alles versucht: ohne bildungsflag, mit 'c' und mit 'n'.
der fehler ist immer der gleiche.
ich vermute fast, dass da auf betriebssystem-ebene (suse 8.2) was nicht stimmt, z.b. irgendwelche schreibrechte

heiko
h_e_i_k_o

Beitragvon h_e_i_k_o » Dienstag 9. September 2003, 15:20

ok, der vollständigkeit halber:
es liegt am nfs-server. der ist im moment so konfiguriert, dass file-locks abgeschaltet sind.
ist also kein python-spezifisches problem.

gruß, heiko

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder