問題描述:
線上(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的形式),應該沒啥問題~
最後就不吐槽比較淺薄的博文了,畢竟他們也給我了不少提示~~