M2Crypto 安装后运行失败(OPENSSL_sk_num)

今天遇见了一个模块安装后无法正确使用的问题,知道问题在哪,但还是花了一整天的时间来解决它。
模块还是上周安装的 M2Crypto , M2Crypto是python下直接调用 openssl 的 加密解密模块。

报错内容如下:
crypto_error
查找资料了解到 这是由于 M2Crypto 安装时 链接的是ubuntu系统自带的 libssl.so.1.0.0
这里写图片描述
libssl.1.0.0 版本比较落后缺少一些 m2crypto 需要的组件。
解决办法是,升级自己的 openssl 版本,然后使用新版本的 openssl 来构建 M2Crypto 模块 。
安装或升级 openssl 的方法:github源码安装
安装后进入解压的 openssl 文件中可以看到一个 libssl.so.1.1 文件(取决于安装的版本,这里只是看一下)
接下来就是按照官方文档写的方式安装模块了,这里不可以使用pip安装,因为pip安装默认的是使用linux自带的so文件。
M2Crypto官方git文档
主要看linux这一段:
这里写图片描述
确保依赖环境安装好后,一步一步构建安装,在 build 时加入所使用的openssl说明,例如我的就是:
python setup.py build –openssl=/usr/local
在这一步会生成许多信息,可以用 ldd 来查看某一步构建依赖的包看是否正确。
我们可以来测试一下:
原始方式:
这里写图片描述
原始方式引用的openssl libssl 文件:
这里写图片描述

运行 python setup.py clean 清除一下 bulid 的文件

引用新版本openssl方式:
这里写图片描述
引用的新版本openssl libssl 文件:
这里写图片描述

然后安装 ,按装完后可以使用 python setup.py test 测试一下!

猜你喜欢

转载自blog.csdn.net/qq_37049781/article/details/80085043
今日推荐