這個問題,已經困擾我好幾天了,本萌新剛開始接觸python,想爬取幾個網頁試試,發現urllib沒法識別https,百度後才知道要導入ssl模塊,但是發現又報錯了。python
本人實在沒法理解爲何會報錯,由於ssl模塊確實在lib/python3.6這個目錄下,求助度娘後,才知道python中要使用ssl須要有openssl做爲前置,因而安裝openssl,可是發現openssl已經安裝了,進入到系統自帶那個python2.7中,發現導入ssl沒有報錯。linux
到這個時候已經能大體肯定緣由了,就是python3在安裝的過程當中沒法使用openssl,根據網上的一些博客的作法,要進入到python源碼包解壓後的那個目錄下的Modules/Setup,注意Setup這個文件,只有在python完成安裝後纔會生成這個文件。vim
用vim編輯,找到上圖部分,把上圖橫線部分部分的#給去掉。python2.7
而後再編譯 make。url
安裝 make install。spa
可是這個時候又特麼悲劇的報錯了,說是找不到openssl/rsa這個文件,百度以後,說是缺乏openssl的開發包,由於你嘗試編譯的程序使用openssl,可是缺乏和openssl連接的庫與頭文件,須要安裝openssl的開發包。blog
由於我使用的是linuxmint,是基於ubantu的發行版,須要安裝openssl-dev。ssl
安裝:apt-get install openssl-dev開發
再來編譯 makeget
安裝 make install
這兩步是對已近安裝的python再進行覆蓋安裝。
到此爲止問題就解決了。
總結一下:
當你發現沒法導入ssl的時候,首先檢查一下,是否安裝了openssl,再來檢查一下是否安裝openssl的開發包。