我正在尝试在我的python项目中使用level 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。
答案 0 :(得分:8)
答案 1 :(得分:2)
在OS X中,似乎/usr/local/include
,其中leveldb头文件(db.h)存在,gcc不可见。
您需要安装Apple命令行工具:
xcode-select --install
plyvel将在此之后编译。
Link to GH issue。似乎是OS X问题。
答案 2 :(得分:0)
我不熟悉leveldb,但大多数直接二进制安装要求您在实际安装二进制文件之前运行./configure
然后make
然后make install
。你应该试试。
此外,根据此github页面,您应该可以使用gem
安装它:https://github.com/DAddYE/leveldb
答案 3 :(得分:0)
如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:错误: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.
答案 4 :(得分:0)
如果您是MacPorts用户,则可以sudo port install leveldb
安装共享库。
根据安装pip / python的方式,可能还需要告诉pip在哪里可以找到必要的文件。对于https://stackoverflow.com/a/22942120/5568265,您将需要执行以下操作:
pip install --global-option=build_ext --global-option='-L/opt/local/lib' plyvel