python3安装,支持openssl,支持采集https

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

posted @ 2019-06-20 16:04  咫尺灵犀  阅读(5812)  评论(0编辑  收藏  举报