升级系统与Python后,已存在libssl.so.6仍遇ImportError错误求助
解决Python 2.7.11导入ssl时找不到libssl.so.6的问题
你遇到的问题本质是本地编译的Python 2.7.11,在系统升级后无法适配新环境下的动态库依赖——虽然你已经安装了相关openssl包并创建了软链接,但可能是动态库加载路径或Python编译时的链接信息不匹配导致的。给你几个可行的解决方案:
方案一:临时/永久设置动态库加载路径
你的libssl.so.6位于/usr/lib目录,但64位系统默认优先从/usr/lib64加载动态库,可能没包含这个路径。可以先临时设置环境变量验证:
export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH # 接着运行你的脚本 python /path/to/your/script.py
如果临时生效,你可以把这个配置添加到用户的~/.bashrc或~/.bash_profile中,让每次登录自动生效:
echo 'export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
方案二:重新编译本地Python 2.7.11(彻底解决)
你之前的Python是基于旧系统环境编译的,默认链接了旧版本的libssl。系统升级后,重新编译Python让它适配当前的openssl库是最彻底的方法:
- 进入Python 2.7.11的源码目录
- 清理之前的编译残留文件:
make clean - 配置编译参数,指定系统当前的openssl路径:
./configure --prefix=/itStorage/tools/swutils/deps/python_2.7.11 --with-openssl=/usr - 编译并重新安装:
make && make install
重新编译后,Python会链接到系统当前的openssl 1.0.2k库,不再依赖旧的libssl.so.6。
方案三:补充64位版本的libssl.so.6软链接
从你提供的rpm信息来看,openssl098e只安装了32位(i686)版本,而你的Python大概率是64位的(系统为el7.x86_64)。需要先安装64位的旧版本openssl包,再创建对应软链接:
- 安装64位的openssl098e:
sudo yum install openssl098e.x86_64 - 在
/usr/lib64目录下创建软链接:sudo ln -s /usr/lib64/libssl.so.0.9.8e /usr/lib64/libssl.so.6 sudo ln -s /usr/lib64/libcrypto.so.0.9.8e /usr/lib64/libcrypto.so.6
这样64位的Python就能找到对应的动态库文件了。
你可以先试试方案一快速验证问题原因,再根据实际情况选择方案二或三彻底解决。
内容的提问来源于stack exchange,提问作者pradeep
相关产品推荐
相关产品推荐

