pip命令出現了問題,提示說找不到ssl模塊


Could not find a version that satisfies the requirement pygame (from versions: )
No matching distribution found for pygame

找不到滿足游戲需求的版本(從版本:)找不到匹配的版本

最近在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,發現正常,問題解決!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM