解决lmdb.Error: train.lmdb: Not a directory和lmdb.MapFullError: Environment mapsize limit reached报错

问题描述

打开lmdb文件的代码如下:

import lmdb

train_data = "train.lmdb".encode("utf8")
env=lmdb.open(train_data,readonly=False)

运行到open这一行的时候就会报错:
lmdb.Error: train.lmdb: Not a directory


原因分析:

lmdb的默认是打开文件夹的,文件夹下会有两个 不同的文件,需要进行subdir=False的设置


解决方案:

import lmdb

train_data = "train.lmdb".encode("utf8")
env=lmdb.open(train_data,readonly=False,subdir=False)

解决上面的错误,还会报错:
lmdb.MapFullError: mdb_cursor_del: MDB_MAP_FULL: Environment mapsize limit reached
这个还需要设置map_size(设置得大一点)

import lmdb

train_data = "train.lmdb".encode("utf8")
env=lmdb.open(train_data,readonly=False,subdir=False,map_size=1024*1024*1024)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值