python3中pip3安裝出錯,找不到SSL

最近在Ubuntu16.04上安裝Python3.6之後,使用pip命令出現了問題,提示說找不到ssl模塊,出現錯誤如下:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Could not fetch URL https:*******: There was a problem confirming the ssl certificate: 
Can't connect to HTTPS URL because the SSL module is not available. - skipping

本人安裝Python3.6的操作如下:

1.wget獲取安裝包:

    wget http://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

2.解壓安裝包:

    tar -xvzf Python-3.6.2.tgz

3.檢查安裝平臺屬性,系統是否有編譯時所需要額庫,以及庫的版本是否滿足編譯需要

    ./configure

4.編譯源碼

    make

5.成功編譯之後,安裝

    sudo make install

在安裝完之後,我們希望用pip3命令來安裝numpy。首先,用如下命令安裝pip3:

sudo install python3-pip

安裝完之後,使用pip3安裝numpy:

sudo pip install python-numpy

但是此時就出錯了,顯示本文開始提到的錯誤,大致意思就是安裝過程需要SSL,但是那個SSL找不到。

本人查閱網上資料,發現openSSL是系統自帶的,所以一定是安裝了的,本人用以下命令嘗試再次安裝openssl:

sudo apt-get install openssl
sudo apt-get install libssl-dev

但是安裝結果顯示是對其進行更新(update),這說明系統已經安裝了openssl。但是pip3就是找不到ssl模塊。

本人進入python3中,然後進行ssl導入操作:

import ssl

結果出錯,錯誤如下:

no moudle named _ssl

顯示沒有ssl模塊。本人再進入python中(即系統自帶的python2.7中),進行ssl導入操作:

import ssl

發現並沒有顯示錯誤,導入正常。這說明openssl已經安裝了,只是python2可以調用,新安裝的python3卻不能調用。

本人查閱資料發現,在./configure過程中,如果沒有加上–with-ssl參數時,默認安裝的軟件涉及到ssl的功能不可用,剛好pip3過程需要ssl模塊,而由於沒有指定,所以該功能不可用。

解決辦法是重新對python3.6進行編譯安裝,用一下過程來實現編譯安裝:

cd Python-3.6.2
./configure --with-ssl
make
sudo make install

這樣就允許安裝的python3使用ssl功能模塊,進入python3中,執行import ssl發現未出錯,正常再次調用pip3指令來安裝numpy,發現正常,問題解決!

原文:https://blog.csdn.net/jeryjeryjery/article/details/77880227

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章