我试图在我的python项目中使用级别db。我把注意力集中在python绑定PlyVel http://plyvel.readthedocs.org/en/latest/installation.html上,这似乎更好地维护并记录了python绑定。
但是plyvel的安装失败了
plyvel / _plyvel.cpp:359:10:致命错误:找不到'leveldb / db.h'文件
#include“leveldb / db.h”
所以我相信我必须在我的机器上安装leveldb。我没有为macosx找到leveldb的安装指南。我已经下载了leveldb的tarball,https://code.google.com/p/leveldb/downloads/list。 Make文件编译代码,但plylevel仍然失败。我应该如何编译级别数据库,使其二进制文件可用于plyvel。
在OS X中,似乎/usr/local/include
,leveldb头文件(db.h)存在,gcc不可见。
您需要安装Apple命令行工具:
xcode-select --install
plyvel将在此之后编译。
Link to GH issue。似乎是OS X问题。
我不熟悉leveldb,但大多数直接二进制安装要求你在实际安装二进制文件之前运行./configure
然后make
然后运行make install
。你应该试试。
另外,根据这个github页面你应该可以用gem
安装它:https://github.com/DAddYE/leveldb
如jAlpedrinha所述
在Mac OS X上安装leveldb的最简单方法是使用自制软件。
使用自制软件,您只需运行:
brew install leveldb
您还需要安装gcc或clang。如果安装这里提到的python绑定有问题,https://github.com/wbolster/plyvel/issues/95
更改你的pylvel setup.py并添加像这样的extra-compile-args
if platform.system() == 'Darwin':
extra_compile_args += ['-mmacosx-version-min=10.7', '-stdlib=libc++', '-Wall', '-g', '-x', 'c++', '-std=c++11']
现在pip安装sphinx,可能你现在将面临这个错误,gcc:error:plyvel / _plyvel.cpp:没有这样的文件或目录
理由和解决方案:
Plyvel uses cython to bind the leveldb C++ implementation to python.
So when you're using the setup script, you have to make sure that plyvel
cython modules have been compiled to .cpp files.
To do that just run make it will handle this opeartion for you.
Just make sure you have sphinx installed : pip install sphinx
Once make is run, you can safely python setup.py install.