Error in creating LMDB database file in Python for

2020-02-11 06:18发布

问题:

I'm trying to create an LMDB data base file in Python to be used with Caffe according to this tutorial. The commands import numpy as np and import caffe run perfectly fine. However, when I try to run import lmdb and import deepdish as dd, I'm getting the following errors:

    >>> import lmdb
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named lmdb
    >>> import deepdish as dd
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named deepdish

I'm running Python 2.7.9 through Anaconda 2.2.0 (64-bit) on Ubuntu 14.04. While installing the dependencies for Caffe according to this page, I've already installed the lmdb package through sudo apt-get install liblmdb-dev.

Any ideas why this error might be occuring?

回答1:

Well, the apt-get install liblmdb-dev might work with bash (in the terminal) but apparently it doesn't work with Anaconda Python. I figured Anaconda Python might require it's own module for lmdb and I followed this link. The Python installation for lmdb module can be performed by running the command pip install lmdb in the terminal. And then import lmdb in Python works like a charm!

The above installation commands may require sudo.



回答2:

If you're using Anaconda, then this can solve your problem (it worked for me):

conda install -c https://conda.binstar.org/dougal lmdb


回答3:

For Anaconda users, installing python-lmdb package from conda-forge should fix the lmdb import error:

conda install -c conda-forge python-lmdb

This was tested on conda 4.5.11 on an lxc-containerized system running Ubuntu 18.04.

Note that there is a conda package named lmdb (without python-), installable via:

conda install -c conda-forge lmdb

that does not fix the import error.