windows下编译python的evelDB库
本人使用的是python2.6, 32位,附上编译出来的dll , [不支持xp]
http://download.csdn.net/detail/toontong/4933540
levelDB的官方库在这: http://code.google.com/p/leveldb/
但官方库是不能在win下编译过了,或是我没找到编译官方levelDB的方法,
1)在giyhub上有达人放出了可以在win编译的过的版本,以下使用的就是这个版本。
[不支持xp, 代码中使用InitOnceExecuteOnce]
https://github.com/chirino/leveldb/blob/master/WINDOWS.md
diff过与官方的代码,确实有很多不一样的,其中官方有没修复某些bug就不得而已,风险自见。
通过以上方法可以编译出leveldb.lib文件。
如果编译不过,应该是宏LEVELDB_PLATFORM_WINDOWS没定义,具体如何 加宏,使用vs界面加吧。
2)另外还要snapppy使用vs编译的工程:
· https://github.com/kmanley/snappy-msvc
此工程是vs2008的,可以转成vs2010的再编译过,得到文件:synapppy.lib
3)取出py-leveldb的代码:
svn export http://py-leveldb.googlecode.com/svn/trunk
修改 setup.py文件:
4)我安装的vs2010,因为python也是2008编译的,要修改C:\Python26\Lib\distutils\msvc9compiler.py 这个文件:
build\temp.win32-2.7\Release\pcapy.pyd.manifest : general error c1010070: Failed to load and parse the manifest. The system cannot find the file specified.error: command 'mt.exe' failed with exit status 31解决办法:由于vs2010的link.exe的参数稍微有些改变,所以在link的时候没有生成manifest文件,自然mt.exe找不到这个文件。只需要在msvc9compiler.py里面搜索一下MANIFESTFILE,然后在他上面加一行ld_args.append('/MANIFEST'),保存就OK了。[引自]
最后就是 python setup.py build
最后成功看到 leveldb.pyd