python3安裝,支持openssl,支持采集https
坑好多,特別是安裝的時候,各種不匹配,服務器默認配置是python2,升級3后,采集的時候用到openssl,花了兩天也沒搞定各種錯誤,也許是對linux了解不夠,openssl與python總是匹配不上,哎,最終還是莫名其妙的成功了,還是最開始的方法,用的是LibreSSL 2.8.0替代的openssl,但剛開始裝上怎么都不行,后來才可以,感覺還是對linux不了解導致。
總結一下:安裝python3.7
首先我的服務器linux缺少關聯程序
安裝 libffi-deve
yum install libffi-devel -y
如果上面安裝失敗則安裝下面
先安裝wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libffi-devel-3.0.13-18.el7.x86_64.rpm
rpm -ivh libffi-devel-3.0.13-18.el7.x86_64.rpm --nodeps
安裝升級openssl
python3.7的ssl模塊(ssl用來采集https后綴的鏈接)必須用openssl並且版本必須大於等於1.02或者libressl2.64(不含)以后的版本,而默認linux的是1.01
openssl貌似有漏洞,而且試了安裝確實不行,用/libressl-2.8.0來替代
安裝libressl-2.8.0
wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.0.tar.gz
tar zxvf libressl-2.8.0.tar.gz
cd libressl-2.8.0/
./configure --prefix=/usr/local/ssllib
make
make install
cd /etc/ld.so.conf.d
新建文件
vim libressl-2.8.0.conf
#將以下行加入文件,並保存
/usr/local/ssl/liblib
ldconfig -v #重新加載庫文件
把原來的命令建立新的硬連接
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/ssllib/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssllib/include/openssl /usr/include/openssl
運行命令看是否成功
openssl version
libressl-2.8.0 成功顯示
安裝python3.7
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1rc2.tgz
tar zxvf Python-3.7.1rc2.tgz
cd Python-3.7.1rc2
修改 Modules/Setup,讓python支持ssl
vim Modules/Setup.dist
去掉前面的#
mkdir /usr/local/python37 安裝到自定義目錄
./configure --prefix=/usr/local/python37 --with-ssl //要確認libressl-2.8.0 成功顯示
(
注意:如果此配置顯示找不到ssl則要用另一個配置
./configure --prefix=/usr/local/python37 -with-openssl=/usr/local/ssllib
在make的時候有時候就算openssl顯示正確的值,但python就是顯示找不到,折騰到崩潰,最后才找到辦法。。。
)
make
make install
移除原來的python命令
mv /usr/bin/python /usr/bin/python_old
建立新的python命令硬連接
ln -s /usr/local/python37/bin/python /usr/bin/python
測試:
python
import ssl
不報錯則表示成功
ctrl+d退出命名
安裝pip
python3.7自帶的有pip只用建立快捷硬連接即可
ln -s /usr/local/python37/bin/pip3 /usr/bin/pip