【已解决】【python】【conda】ImportError: libssl.so.1.1: cannot open shared object file

报错:ImportError: libssl.so.1.1: cannot open shared object file: No such file or directory

若有理解不当,欢迎讨论补充
系统:Linux
环境:conda虚拟环境 + paddle 2.5.1
问题:在使用paddle 2.5.1的时候,显示已经pip安装成功了,但是在import paddle时报了错误。
分析:错误发生在paddle包的fluid文件夹下的core.py里,代码:

from . import libpaddle

这里的libpaddle应该指的是同路径下的libpaddle.so文件,该文件是python代码编译成的共享库,它里面应该是尝试调用了系统的openssl.so.*,在我的环境中,我已经通过conda install openssl=1.1命令安装了1.1版本的openssl,而且也存在libssl.so.1.1这个文件,位置是

/root/miniconda3/envs/env_name/lib/libssl.so.1.1

但是显然代码找不到这个文件。但是它可以找到系统本身环境的openssl.so文件,在我本地,该文件位于

/usr/lib/x86_64-linux-gnu/libssl.so
/usr/lib/x86_64-linux-gnu/libssl.so.3 

显然版本不对。解决该问题的方法有几个:
解决1:在系统环境中安装openssl.1.1.x,这个方法我没试,在网上搜该报错,大多数回答都是这个方法。但是我不想动系统环境,我想直接用conda虚拟环境中的openssl.so文件,所以该方法我没试过。
解决2:将conda 虚拟环境中的openssl.so.1.1复制到/usr/lib/x86_64-linux-gnu路径下。该方法在我的环境下有效。

注意:如果你的/usr/lib下没有该文件,你可以尝试在根目录下搜索libssl.so文件,找到类似于/usr/lib这种形式的路径,把openssl.so.1.1复制过去即可

解决3:将你的虚拟环境中的libssl.so.1.1所在路径,(即/root/miniconda3/envs/envs_name/lib)添加到环境变量LD_LIBRARY_PATH中:

export LD_LIBRARY_PATH=/root/miniconda3/envs/envs_name/lib:$LD_LIBRARY_PATH 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值