Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

当装好python3导入ssl模块时报以下错误: ModuleNotFoundError: No module named ‘_ssl’

import _ssl # if we can’t import it, let the error propagate ImportError: No module named _ssl

Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

参考试了好多文章,发现都不太好使,最终找到了解决方案,安装openssl的依赖

解决办法:

centos安装python3.7时,查阅知需要的openssl版本最低为1.0.2,但是centos 默认的为1.0.1,所以需要重新更新openssl

一、安装依赖库:

如果有网,直接在线安装依赖库,如果部署环境没网,可以参考最后一节,五、注1:openssl或nginx离线依赖安装过程

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

二、安装新版本的openssl

注意!openssl配置是用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib 自行到官网查阅最新版本~

1、openssl安装包官网下载地址:

http://www.openssl.org/source/

也可在该文章最后面一节内容,注1:步骤中所述下载到openssl1.0.2版本,可以满足Centos7.8环境。

wget http://www.openssl.org/source/openssl-1.1.1.tar.gz (如果有网就可以直接下载,没网就需要单独下载安装包通过终端工具从windows上传到centos中)
tar -zxvf openssl-1.0.2k.tar.gz ( 解压对应版本安装包)
cd openssl-1.0.2k (进入对应的解压目录)
./config –prefix=/usr/local/openssl shared zlib
(prefix为配置安装目录,shared zlib 安装依赖库)这一步最重要,一定要shared
make && make install (编译、安装)

2、设置环境变量LD_LIBRARY_PATH(一般用户环境变量即可生效,二选一即可)

这一步一定要有!!LD_LIBRARY_PATH环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。当执行函数动态链接.so时,如果此文件不在缺省目录下’/lib’ and ‘/usr/lib’,那么就需要指定环境变量LD_LIBRARY_PATH

(1)用户环境变量:

echo “export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib” >> /usr/local/.bash_profile (在用户环境变量文件中添加openssl的环境变量)
source /usr/local/.bash_profile (重新加载该路径下的用户环境变量文件)

注:在实际服务器上应用过程中发现,该环境变量只会当前shell脚本生效,如果下次重新进入shell脚本会失效,故如果嫌麻烦每次启动服务都要用的话,可直接设置到path环境变量中。(该步涉及到Centos系统使用习惯,一般程序环境变量设置入用户变量即可,path专门保存系统变量,但一般用户环境变量会失效,放入path会全局生效)。

(2)系统环境变量:

如果选择将其设置为全局的在path系统环境变量中设置命令如下:

echo “export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib” >> /etc/profile
(在系统环境变量文件中添加openssl的环境变量)
source /etc/profile (重新加载该路径下的系统环境变量文件)

三、解压python3.7,并安装,一定要指定刚才安装的1.1.1版本的openssl!!!

tar -zxvf Python-3.7.0.tgz (解压安装包)
./configure –prefix=/usr/local//python3 –with-openssl=/usr/local//openssl
(配置安装目录,指定openssl环境的安装目录)
make && make install (编译、安装)

四、至此python3.7就安装完了,来检验下ssl模块能否被导入吧:

1、创建python软连接

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
(pip命令行调用指向pip3)
ln -s /usr/local/python3/bin/python3 /usr/bin/python
(python命令行调用指向python3,如果同时安装有其他版本python可通过该命令指定用到的python版本)
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
(python3命令行调用指向python3,由于某些程序执行时要求是python3命令调用,该步可根据需要进行设置)
python –version
查看当前python安装版

Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

2、导入ssl模块

python3 (进入python3命令行)

import ssl (导入ssl模块)
import _ssl (导入_ssl模块)
exit() (退出python3命令行)

Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

3、查看pyhon的软链接指向。

Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

以上Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl’问题的全部解决过程!!!

五、注1:openssl或nginx离线安装依赖库(没网可离线,也可在线):

第(1)步在线安装和第(2)步离线安装,二选一安装即可。

(1)如果是 在线安装 直接用yum命令就可以安装,依赖安装成功即可。

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

(2)如果是 离线安装 直接下载下面这个我传到百度云上的安装依赖包就可以,里面有依赖包和openssl1.0.2版本。

该离线包同样可以用于nginx离线安装环境依赖。

安装包下载方式:百度云、CSDN、openssl官网均可。

A、链接:https://pan.baidu.com/s/1mdwddtYEo-_qr3OUmBtxMw
提取码:qy2k

Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

B、CSDN下载资源,已设置免积分下载

Linux系统centos7环境下安装openssl1.0.2所需安装包及nginx离线安装所需全部依赖包,均可使用-Linux文档类资源-CSDN文库

C、最新版openssl安装包也可在openssl官网下载。

/source/index.html Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题https://www.openssl.org/source/;

(3)依赖包解压如下:

Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

具体打开文件夹如下:

Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

安装命令如下:

rpm -ivh xxxx.rpm –nodeps
命令含义注释:rpm -ivh (rpm包的安装命令),–nodeps 跳过环境依赖
例如:
rpm -ivh openssl-devel-1.0.2k-19.el7.x86_64.rpm –nodeps

Original: https://blog.csdn.net/qq_39715000/article/details/125009276
Author: 乞力马扎罗の黎明
Title: Centos安装python3导入ssl时解决 ModuleNotFoundError: No module named ‘_ssl‘问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/729935/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球