2015-01-31 19 views
5

Python resmi resmi, python:2.7.9-wheezy temel alınarak bir Docker kapsayıcısı içinde açmak için shelve açmak istiyorum. Ama bir ithalat hatası alıyorum. Benim ev sahibi makinede"ImportError: Docker kapsayıcısında modül yok",

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 

sorun yok ve _bsddb /usr/lib/python2.7/lib-dynload/_bsddb.so bulunmaktadır. Bu dosya Docker kapsayıcısında da kullanılabilir, bu yüzden neden içe aktarılamayacağını anlamıyorum.

Ignacio Vazquez-Abrams

db4-devel yüklemeye önermek, ancak bu paketin benim kapta kullanılamaz.

nasıl Docker kapta rafa açabilirim?

cevap

1

libdb4.8-dev paketine (link) ihtiyacınız var gibi görünüyor, ancak maalesef bu Lucid'den beri artık mevcut değil.

bazı olası çözümleri bulduk: Lucid deposundan libdb4.8++ takma

  1. sudo apt-get install libdb5.1++-dev (link)
  2. (link)
  3. sudo apt-get install libdb++-dev libminiupnpc-dev
( link olsa Python yeniden gerektirebilir)

Umut eder!

(şu anda trendeyim, bu yüzden kesinlikle sonradan sizin için onları test edecek)


DÜZENLEME: Ayrıca this page desteklenen sürümleri hakkında birçok bilgi verir.

+0

Maalesef, benim için çalışmadı. Şimdilik [google/python] (https://registry.hub.docker.com/u/google/python/) adresini kullanıyorum. Ama bu görüntü Python 2.7.9 içermiyor, bunun yerine Python 2.7.2 ile birlikte geliyor. – OrangeTux

İlgili konular