Desidero aprire uno shelve all'interno di un contenitore Docker basato sull'immagine ufficiale di Python, python:2.7.9-wheezy. Ma ottengo un errore di importazione."ImportError: nessun modulo denominato _bsddb" quando si apre shelve nel contenitore 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
Sulla mia macchina host il problema non c'è e _bsddb
si trova a /usr/lib/python2.7/lib-dynload/_bsddb.so
. Questo file è disponibile anche nel mio contenitore Docker, quindi non capisco perché non può essere importato.
Ignacio Vazquez-Abrams consiglia di installare db4-devel
, ma questo pacchetto non è disponibile nel mio contenitore.
Come si apre la mensola nel contenitore Docker?
Sfortunatamente, non ha funzionato per me. Per ora uso [google/python] (https://registry.hub.docker.com/u/google/python/). Ma questa immagine non contiene Python 2.7.9, ma è fornita con Python 2.7.2 – OrangeTux