热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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



推荐阅读
author-avatar
万承裕常明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有