python3.7 ImportError: No module named _ssl 解决方法

本文详细介绍了在CentOS6环境中,因OpenSSL1.0.1版本不支持Python3而引发的问题及解决方案。通过升级OpenSSL至1.1.1版本,并调整环境变量、卸载重装Python3,最终实现两者兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、原因

本人环境:centos6,openssl 1.0.1
查询原因是openssl 1.0.1,不支持python3版本,这点可以确定,因为python2 import ssl就不报错

2、解决方案

升级openssl版本

1、下载openssl

wget http://www.openssl.org/source/openssl-1.1.1.tar.gz

2、安装依赖包

yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++

3、安装openssl

openssl配置是用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib

wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config --prefix=$HOME/openssl shared zlib
make && make install

4、设置环境变量

主要用于指定查找共享库(动态链接库)

echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile

5、卸载python和软连接

rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps  # 删除python3
whereis python3 |xargs rm -frv           删除所有残余文件

6、重新安装python3

wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
tar -xvJf  Python-3.7.2.tar.xz
mkdir /usr/local/python3 
cd Python-3.7.2
# 编译指定刚安装openssl
./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=$HOME/openssl
make clean  
make && make install

7、创建python3软链接

ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

8、测试
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值