Python3在Linux下没有ssl模块问题

时间:2024-05-19 13:10:56

问题描述:

线上(centos)在用gunicorn部署Flask服务时,启动gunicorn,报错,import ssl 时报错,找不到模块。

问题的背景:

在虚拟机(Ubuntu 16.04)试了一下,此版本系统自带Python2.7.12和Python3.5.2,均能正常引用ssl。

我自己装的3.6.6 import 时就不行,就这么无奈。。

解决过程:

各种博文一通看,大部分写的比较皮毛、形式化,这里由我总结一下,先说解决过程,再喷一下其他博文 ==

1、引起原因:

原因有两个,一个是这个版本的安装包内安装ssl的部分被注释掉了,另外一个原因是,即使打开注释,你的Linux环境可能没有安装需要的OpenSSL。

针对前者,打开安装文件(./Modules/Setup 和 ./Modules/Setup.dist)的注释:

Python3在Linux下没有ssl模块问题

针对后面一个问题,那就自己下载一个新版的OpenSSL安装上咯,无非就是按照安装说明里(INSTALL)的步骤弄,注意认真阅读,默认安装位置在哪儿,是否需要指定。

需要特别注意的是,这个openssl的地址和刚才你打开的注释引用的地址,以及python文件中 setup.py 中引用的地址是要一致的,一致的,一致的!

Python3在Linux下没有ssl模块问题

openssl 就是ssl 需要引用的,这个安装好以后,再把python装一遍,就ok了。

 

如果python安装过程中有什么问题,或者装上后还有什么模块没有,那就是另外一回事儿了~

不过按照一般的教程装(已源文件make的形式),应该没啥问题~

最后就不吐槽比较浅薄的博文了,毕竟他们也给我了不少提示~~