Chcę otworzyć shelve w pojemniku Docker na podstawie oficjalnego obrazu Pythona, python:2.7.9-wheezy. Ale dostaję błąd importu."ImportError: Brak modułu o nazwie _bsddb" podczas otwierania półki w pojemniku Docker
syncer/util.py:19: in get_from_shelve
db = shelve.open(conf.SHELVE_LOCATION)
/usr/local/lib/python2.7/shelve.py:239: in open
return DbfilenameShelf(filename, flag, protocol, writeback)
/usr/local/lib/python2.7/shelve.py:223: in __init__
Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
/usr/local/lib/python2.7/anydbm.py:84: in open
mod = __import__(result)
/usr/local/lib/python2.7/dbhash.py:7: in <module>
import bsddb
...
E ImportError: No module named _bsddb
Na moim komputerze hosta problem nie istnieje i _bsddb
znajduje się /usr/lib/python2.7/lib-dynload/_bsddb.so
. Ten plik jest również dostępny w moim kontenerze Docker, więc nie rozumiem, dlaczego nie można go zaimportować.
Ignacio Vazquez-Abrams sugeruję zainstalować db4-devel
, ale ten pakiet nie jest dostępny w moim pojemniku.
Jak otworzyć półkę w pojemniku Docker?
Niestety, to nie działa dla mnie. Na razie używam [google/python] (https://registry.hub.docker.com/u/google/python/). Ale ten obraz nie zawiera Pythona 2.7.9, ale jest dostarczany z Pythonem 2.7.2 – OrangeTux