ImportError: No module named _bsddb

ImportError: No module named _bsddb

我最近在升级 matplotlib 时遇到了一些问题,所以我最终通过 brew 在我的 Mac (Sierra) 上安装了不同版本的 Python,然后卸载了。但是,现在 matplotlib 可以工作(2.0.2),但是每当我 运行 一个曾经工作的特定 python 脚本时,我都会收到一个以前没有的错误:

Traceback (most recent call last):
  File "sim.py", line 254, in <module>
    main()
  File "sim.py", line 118, in main
    db = shelve.open('.sim_balance', 'c')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shelve.py", line 243, in open
    return DbfilenameShelf(filename, flag, protocol, writeback)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shelve.py", line 227, in __init__
    Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/anydbm.py", line 84, in open
    mod = __import__(result)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/dbhash.py", line 7, in <module>
    import bsddb
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/bsddb/__init__.py", line 67, in <module>
    import _bsddb
ImportError: No module named _bsddb

根据我的在线搜索,这与我安装的 brew python 干扰有关?我昨天还删除了 /Library/Python/2.7/site-packages 中的所有文件,这也可能是导致此问题的原因。

我试过自制软件 brew install berkeley-db 但后来 pip install bsddb3 产生了:

Terrys-MBP:site-packages Terry$ pip install bsddb3
Collecting bsddb3
  Using cached bsddb3-6.2.4.tar.gz
    Complete output from command python setup.py egg_info:
    Can't find a local Berkeley DB installation.
    (suggestion: try the --berkeley-db=/path/to/bsddb option)

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/m5/1fg5rnj11_9cz5pntlqlwzyc0000gn/T/pip-build-elBAFK/bsddb3/

编辑:已解决。安装了 anaconda,通过 conda install 安装了 bsddb,现在一切正常。

已解决。我安装了 anaconda,通过 conda install 安装了 bsddb,现在一切正常。