【嵌入式】python出现ERROR:root:code for hash md5 was not found.错误解决办法

本文讲述使用Python与C混合进行ARM嵌入式开发时遇到的问题。在本地Linux X86平台交叉编译无报错,但在ARM板运行时提示md5模块错误。经排查,发现是Python脚本导入的三方库使用md5模块报错,问题根源是本地编译服务器与ARM板的libcrypto.so库版本不一致,替换库后程序正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:
环境:使用python与c混合进行ARM嵌入式开发,使用python2.7.so中c接口调用python脚本中函数,并交叉编译到ARM开发板使用。
问题:在本地linux X86平台服务其进行交叉编译时无报错、无告警。但将其放到ARM板上运行时出现以下错误提示:
ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
File “usr/lib/python2.7/hashlib.py”, line 147, in File “usr/lib/python2.7/hashlib.py”, line 109, in __get_openssl_constructor
File “usr/lib/python2.7/hashlib.py”, line 97, in __get_builtin_constructor
ValueError: unsupported hash type md5

问题原因:查看原因发现是因为我写的python脚本中导入的某个三方库中使用了md5模块,但在插入md5模块时报错。查看python源码,发现其报错地方写明此处使用的是c函数,并允许c抛出异常,因此将寻找问题原因的侧重点放到了C库中。源码如下:
python源码
查看本地Makefile,发现其中只有一个安全相关的库,名为:libcrypto.so。查看ARM板中发现有该库,因此怀疑库的版本对应不上,经查看发现本地编译服务器的库与ARM板的库版本果然不一样,将编译服务器上的so替换道ARM板对应位置后程序运行正常。

原创文章,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值