Linux环境运行Python提示No_module_named '_ssl'; ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘ module is compiled

python 版本 3.9.6
我是在使用fastApi调用request模块时出现的这个问题,
运行程序时报错
ModuleNotFoundError: No module named '_ssl'

错误原因

centos7-2009默认openssl版本为1.0.2k,python从3.7.0开始,要求openssl的版本最低要为1.0.2或1.1.0,或者使用libressl来代替openssl

解决一 降低urllib3的版本

参考帖子1

参考帖子2

错误信息 ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘ module is compiled

// 1. 卸载
pip uninstall urllib3
// 2. 指定版本重新安装
pip install urllib3==1.26.15

解决二 升级openssl

下载openssl
image
我选择的是1.1.n的版本

安装

tar -zxvf openssl-1.1.1n.tar.gz

cd openssl-1.1.1n

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

make && make install

修改软链接

mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

修改相关文件

echo “/usr/local/openssl/lib” >> /etc/ld.so.conf

# 设置生效
ldconfig -v 

确认版本

openssl version

重新编译安装python3 看这篇帖子
进入 python3 控制台,引入ssl 没有报错

[root@root]# python3.9
Python 3.9.6 (default, May 13 2025, 18:00:48) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> 

posted @ 2025-05-14 18:08  darling331  阅读(490)  评论(0)    收藏  举报