這個問題,已經困擾我好幾天了,本萌新剛開始接觸python,想爬取幾個網頁試試,發現urllib無法識別https,百度后才知道要導入ssl模塊,可是發現又報錯了。

本人實在無法理解為什么會報錯,因為ssl模塊確實在lib/python3.6這個目錄下,求助度娘后,才知道python中要使用ssl需要有openssl作為前置,於是安裝openssl,但是發現openssl已經安裝了,進入到系統自帶那個python2.7中,發現導入ssl沒有報錯。

到這個時候已經能大致確定原因了,就是python3在安裝的過程中無法使用openssl,根據網上的一些博客的做法,要進入到python源碼包解壓后的那個目錄下的Modules/Setup,注意Setup這個文件,只有在python完成安裝后才會生成這個文件。

用vim編輯,找到上圖部分,把上圖橫線部分部分的#給去掉。
然后再編譯 make。
安裝 make install。
但是這個時候又特么悲劇的報錯了,說是找不到openssl/rsa這個文件,百度之后,說是缺少openssl的開發包,因為你嘗試編譯的程序使用openssl,但是缺少和openssl鏈接的庫與頭文件,需要安裝openssl的開發包。
因為我使用的是linuxmint,是基於ubantu的發行版,需要安裝openssl-dev。
安裝:apt-get install openssl-dev
再來編譯 make
安裝 make install
這兩步是對已近安裝的python再進行覆蓋安裝。
到此為止問題就解決了。
總結一下:
當你發現無法導入ssl的時候,首先檢查一下,是否安裝了openssl,再來檢查一下是否安裝openssl的開發包。
