【Python填坑记】树莓派运行python3代码,提示openssl版本过低,附升级openssl填坑过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近需要在树莓派上部署一些python代码,于是给树莓派升级安装了python3.9.7版本,但执行代码碰到openssl 版本太低的问题,致使python无法正常运行,这里把填坑日志记录一下,希望可以帮到需要的人。


一、openssl是什么?

openssl是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto。

二、升级openssl的常规操作

使用管理员账户登录后,按如下常规动作执行,

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar zxf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl 
make -j4 && make install
openssl version

如果顺利完成后显示OpenSSL 1.1.1g 21 Apr 2020,恭喜你!
如果不成功,也没关系,下面就是填坑宝典送给你。

三、升级openssl填坑过程

1、去官网下载最新版本,或wget下载也行 http://www.openssl.org

wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar zxf openssl-1.1.1g.tar.gz

如果wget报错,就在浏览器输入https://www.openssl.org/source/openssl-1.1.1g.tar.gz下载即可。并手工解压到以下目录/home/pi/openssl-1.1.1g、解压并进入该目录,ls看显示目录内容:

cd /home/pi/openssl-1.1.1g
ls

2、进入解压目录后执行:

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
./config --prefix=/usr/local/openssl shared

sudo make depend
sudo make
sudo make install

用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。

3、新建目录
sudo mkdir /usr/local/openssl

4、配置使用新版本:
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
sudo ln -s /usr/local/openssl/include/openssl /usr/include/openssl

5、更新动态链接库数据
sudo sh -c “echo ‘/usr/local/ssl/lib’ >> /etc/ld.so.conf”

6、重新加载动态链接库
sudo ldconfig -v

7、openssl version

报错:

openssl: /usr/lib/arm-linux-gnueabihf/libssl.so.1.1: version `OPENSSL_1_1_1' not found (required by openssl)
openssl: /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1: version `OPENSSL_1_1_1' not found (required by openssl)

备份文件

sudo mv /usr/lib/arm-linux-gnueabihf/libssl.so.1.1 /usr/lib/arm-linux-gnueabihf/libssl.so.1.1.old
sudo mv /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1 /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1.old

复制新编译的文件

sudo cp /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/arm-linux-gnueabihf/
sudo cp /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/arm-linux-gnueabihf/

再次执行显示版本

openssl version
OpenSSL 1.1.1g  21 Apr 2020

总结

openssl是树莓派的底层库,虽然麻烦但还真跳不过,也不知道新版的树莓派系统解决这个问题没?希望大家填坑顺利,不要耽搁大家太多时间(折腾了我一个下午,各种搜索,测试,才搞定)。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT里的交易员

分享是一种快乐,打赏是一种肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值