我使用python库pyfprint来识别已注册的手指和pymongo进行数据存储。
def identificar_digital():
dev.open()
impressoes = []
lista = funcionarios.find()
for i in range(lista.count()):
func = lista.next()
with fs.get(func.get('digital')) as fp_read:
data = pyfprint.pyf.fp_print_data_from_data(str(fp_read.read()))
impressoes.append(pyfprint.Fprint(data_ptr = data))
# Corrigir problema no retorno: IndexError: list index out of range
off, fp, fp_img = dev.identify_finger(impressoes)
dev.close()
return fp回溯:
Traceback (most recent call last):
File "ponto.py", line 79, in <module>
fp = identificar_digital()
File "ponto.py", line 37, in identificar_digital
off, fp, fp_img = dev.identify_finger(impressoes)
File "/usr/local/lib/python2.7/dist-packages/pyfprint/pyfprint.py", line 267, in identify_finger
return (offset, fprints[offset], img)
IndexError: list index out of range发布于 2014-01-09 14:52:14
问题解决了。在当前版本的libfprint中,它是坏的。我使用了0.5.0版本并正常工作
谢谢
发布于 2013-12-16 15:50:28
如果您查看这里的代码,https://github.com/luksan/pyfprint/blob/master/pyfprint/pyfprint.py,您可以准确地看到问题的所在。
fprints是一个指纹列表。offset由pyf.pyfp_identify_finger_img()返回。显然,您正在获得一个pyf.FPVERIY_MATCH,但是返回的偏移量是不正确的。您应该检查正在返回的偏移量。例如,您可以使用Python调试器pdb。
如果您在identify_finger函数的顶部看到一个FIXME: error handling注释。该模块的开发人员明确表示,他不处理错误,这就是为什么您会得到未处理的异常。
https://stackoverflow.com/questions/20614109
复制相似问题