簡體   English   中英

在Docker容器中打開擱置時,“ImportError:沒有名為_bsddb的模塊”

[英]“ImportError: No module named _bsddb” when opening shelve in Docker container

我想在基於Python的官方圖像python:2.7.9-wheezy的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

在我的主機上問題不存在, _bsddb位於/usr/lib/python2.7/lib-dynload/_bsddb.so 這個文件也可以在我的Docker容器中使用,所以我不明白為什么它無法導入。

Ignacio Vazquez-Abrams建議安裝db4-devel ,但我的容器中沒有此軟件包。

如何打開Docker容器中的擱架?

看起來你需要libdb4.8-dev軟件包( 鏈接 ),但不幸的是,自Lucid以來這已經不再可用了。

我找到了一些可能的解決方案:

  1. sudo apt-get install libdb5.1++-devlink
  2. 從Lucid存儲庫安裝libdb4.8++鏈接
  3. sudo apt-get install libdb++-dev libminiupnpc-dev鏈接 ,可能需要重新安裝Python)

希望能幫助到你!

(我現在在火車上,所以以后肯定會為你測試一下)


編輯: 此頁面還提供了有關受支持版本的大量信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM