问题描述:
线上(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)的注释:
针对后面一个问题,那就自己下载一个新版的OpenSSL安装上咯,无非就是按照安装说明里(INSTALL)的步骤弄,注意认真阅读,默认安装位置在哪儿,是否需要指定。
需要特别注意的是,这个openssl的地址和刚才你打开的注释引用的地址,以及python文件中 setup.py 中引用的地址是要一致的,一致的,一致的!
openssl 就是ssl 需要引用的,这个安装好以后,再把python装一遍,就ok了。
如果python安装过程中有什么问题,或者装上后还有什么模块没有,那就是另外一回事儿了~
不过按照一般的教程装(已源文件make的形式),应该没啥问题~
最后就不吐槽比较浅薄的博文了,毕竟他们也给我了不少提示~~