centos7 安裝python3.6以上版本解決openssl問題


在centos7系統中,安裝原來的辦法安裝python3.6,在使用request庫 時,系統會提示

報錯信息: Can't connect to HTTPS URL because the SSL module is not available

問題分析:

查看系統openssl版本:

[root@zj ~]# openssl version -a
OpenSSL 1.0.1e
百度后發現ssl版本必須要是1.1或者1.0.2之后的版本,或者安裝了2.6.4之后的libressl。
開始探索之路:
方法一:
1、下載openssl-1.0.2h.tar.gz
wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz
2、更新zlib
yum install -y zlib
3、解壓安裝
tar zxf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
./config shared zlib
make && make install
 
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
ldconfig -v
 
4、查看是否升級成功
[root@zj ~]# openssl version -a
OpenSSL 1.0.2h 3 May 2016

 

重新安裝python,加上這個 –with-ssl

./configure –prefix=/usr/local/Python3.71 –with-ssl

make&make install

開始校驗:

 

 導入ssl模塊沒有報錯即可

方法二:

1.編譯安裝OpenSSL 1.0.2j版本並重新配置環境變量

下載OpenSSL源碼包:(在/usr/local/python3下執行)
wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz

解壓縮,編譯安裝:
tar -zxvf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j

# 修改編譯參數,no-zlib 不需要zlib
./config --prefix=/usr/local/python3/openssl-1.0.2j no-zlib

make && make install

2.重新編譯安裝python3.6.2

安裝Python3.6的前期准備

安裝前更新yum源

安裝python3所需依賴:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make

然后重新編譯python3.6.2:

tar -zxvf Python-3.6.2.tgz
cd Python-3.6.2
./configure --prefix=/usr/local/python3

在這一步之后,先不要着急運行make命令。先修改源碼目錄 Python-3.6.2/Modules/Setup 文件:

[root@localhost ~]# vim Modules/Setup

# Socket module helper for socket(2)
#_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/lab/openssl-1.0.2j/ #取消這一行的注釋,並將原來的/usr/local/ssl改為我們新安裝的openssl目錄:/usr/local/python3/openssl-1.0.2j/
_ssl _ssl.c \ #取消這一行的注釋
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ #取消這一行的注釋
-L$(SSL)/lib -lssl -lcrypto #取消這一行的注釋

最后重新編譯安裝python3:

make& make install 

此時發現安裝完后pip3也進行了安裝,大功告成。

再次導包,成功安裝

 

 

入坑完畢。

參考文檔:http://www.yueguangzu.net/?p=1677

       https://blog.csdn.net/reblue520/article/details/94072018

       https://www.jb51.net/article/166688.htm

       

 


免責聲明!

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



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