открыть файл shelve

#python

#python

Вопрос:

Я пытаюсь выполнить поиск «ключа» в «my.db». Я сделал следующее:

 import shelve
db_file = os.path.join(self.path_data, 'my_directory', 'my.db')
s = shelve.open(db_file)
val = s["key"]
  

и я получаю эту ошибку:

  /opt/Python-2.4.3/lib/python2.4/shelve.py in open(filename='/path_here/dir/netmhcpan.db', flag='c', protocol=None, writeback=False, binary=None)
 /opt/Python-2.4.3/lib/python2.4/shelve.py in __init__(self=<DbfilenameShelf instance>, filename='/path_here/dir/netmhcpan.db', flag='c', protocol=None, writeback=False, binary=None)
 /opt/Python-2.4.3/lib/python2.4/anydbm.py in open(file='/path_here/dir/netmhcpan.db', flag='c', mode=438)
......
ImportError: No module named _bsddb
  args = ('No module named _bsddb',) 
  

Ценю любую помощь в решении этой проблемы. Спасибо.

Ответ №1:

Установите db4-devel или что-то подобное, затем перестройте Python.

Комментарии:

1. Он отлично работает, когда я делаю это в командной строке python, но внутри класса происходит сбой.

2. @DGT: «но сбой внутри класса». Совершенно другой вопрос. Примите этот ответ. Откройте новый вопрос.