溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python3.7安裝后ssl問(wèn)題

發(fā)布時(shí)間:2020-07-14 15:48:55 來(lái)源:網(wǎng)絡(luò) 閱讀:76081 作者:蘇黎世1995 欄目:編程語(yǔ)言

pip3報(bào)錯(cuò)

安裝python3.7.0后發(fā)現(xiàn)使用pip會(huì)出現(xiàn)如下報(bào)錯(cuò):

[root@localhost ~]# /usr/local/python3/bin/pip3 install virtualenv
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting virtualenv
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Could not fetch URL https://pypi.org/simple/virtualenv/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/virtualenv/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
  Could not find a version that satisfies the requirement virtualenv (from versions: )
No matching distribution found for virtualenv
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

由于我的系統(tǒng)是CentOS release 6.7,所有openssl的版本為OpenSSL 1.0.1e-fips 11 Feb 2013,而python3.7需要的openssl的版本為1.0.2或者1.1.x,需要對(duì)openssl進(jìn)行升級(jí),并重新編譯python3.7.0

升級(jí)openssl

1.下載最新版openssl

https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz

2.編譯安裝

cd openssl-1.1.1-pre8
./config --prefix=/usr/local/openssl no-zlib #不需要zlib
make
make install

3.備份原配置

[root@s2-hadoop-test ~]# mv /usr/bin/openssl /usr/bin/openssl.bak
[root@s2-hadoop-test ~]# mv /usr/include/openssl/ /usr/include/openssl.bak

4.新版配置

#將安裝好的openssl 的openssl命令軟連到/usr/bin/openssl
[root@s2-hadoop-test ~]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
#軟鏈到升級(jí)后的libssl.so
[root@s2-hadoop-test ~]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so

#將安裝好的openssl命令軟連到/usr/bin/openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

5.修改系統(tǒng)配置

#寫入openssl庫(kù)文件的搜索路徑
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
#使修改后的/etc/ld.so.conf生效 
ldconfig -v

6.查看openssl版本

openssl version
OpenSSL 1.1.1-pre8 (beta) 20 Jun 2018

重新安裝python

注意:需要指定openssl的安裝路徑,--with-openssl

./configure --prefix=/usr/local/python37 --with-openssl=/usr/local/openssl
make
make install
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI