windows上编译leveldb.lib和安装plyvel(python库调用levedb.lib)

本文介绍了在Windows上编译leveldb.lib库及其在Python plyvel库中的应用,包括解决Python DLL加载失败、Win32应用程序错误、PLYVEL安装失败等问题。详细讨论了boost库的选择、leveldb.lib的编译方法以及plyvel安装的注意事项,并提供了相关资源链接。
摘要由CSDN通过智能技术生成

下面的问题没有出现在安装plyvel的过程中,但依旧分析一下,以后方便找到。
这个好像是在安装py-leveldb时遇到的问题:

Python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。

Python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
github/mhammond/pywin32
安装pywin32 错误提示3.6找不到注册表信息python version 3.6 required,which was not fount in the registry

依照要求完成了更新,但是仍然不行。

OSError: [WinError 193] %1 不是有效的 Win32 应用程序

可能level.dll不是你python对应版本(当时是32位)的,我dll是64位的?我想应该就是这个问题。修改成对应版本的包即可。

如果你使用leveldb-py,这是一个leveldb的portable版的py库,可能会遇到下面问题(读取ethdb的时候,安装是没问题的,但是如果和我一样要求使用到ethereum上,那么还要去装plyvel(虽然最后还是没什么用就是了(苦笑))):

OpenError: Corruption: many missing files; e.g.: XX.sst

这是因为leveldb-py封装的leveldb的库太老了,因为历史原因leveldb的数据文件由.sst变为了.ldb.这个问题正如下面链接所说,其实将.ldb改为.sst即可。
LevelDB Corruption in npmd
但是这样对新的leveldb库来说,只能读取,不能写入。如果考虑使用leveldb-py,你需要考虑上面那些问题。


下面讲一讲plyvel的坑。
如果你使用pip install plyvel,恐怕会遇到下面问题(时间太久了,记不太清):

Failed building wheel for plyvel

这个意思是,pip能找到所有的版本都与你的系统不适应,所以你就无法安装了。如果你能找到一个plyvel.whl当然更好,但是plyvel的作者并没有提供windows版本的whl,所以不行呢…只能另寻他路了。

考虑将源包下载下来,自己使用下面的命令:

python setup.py install

会出现下面的问题:

LINK : fatal error LNK1181: 无法打开输入文件"leveldb.lib"

这个问题很显然,就是python.exe找不到leveldb.lib,自己编译一个即可(这个即可蕴含巨大工作量…)
省略一万字…(走了弯路)
这里有几个可能的获得leveldb.lib的方法:
1.其他人编译好的lib文件,比如

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值