摘自:https://blog.csdn.net/love_cjiajia/article/details/82254371

python3.7安装(解决ssl的问题)

1) 安装准备

yum -y install zlib zlib-devel 
yum -y install bzip2 bzip2-devel 
yum -y install ncurses ncurses-devel 
yum -y install readline readline-devel 
yum -y install openssl openssl-devel 
yum -y install openssl-static 
yum -y install xz lzma xz-devel 
yum -y install sqlite sqlite-devel 
yum -y install gdbm gdbm-devel 
yum -y install tk tk-devel

2) 安装libressl代替openssl-devel 
由于系统的openssl是1.0.1的版本,对于python3.7太老了,需要更新为openssl1.0.2或者libressl2.64(不含)以后的版本,所以这里从libressl官网下载libressl源码,编译生成库文件代替系统的openssl1.0.1

进入解压后的目录libressl-2.8.0

运行: ./config –prefix=/usr/local/ssl 
make 
make intall

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

cd /etc/ld.so.conf.d 
新建文件 
vim libressl-2.8.0.conf 
#将以下行加入文件,并保存 
/usr/local/ssl/lib

ldconfig -v #重新加载库文件

验证是否安装完成 
[root@testmachine hadoop_software]# openssl version 
LibreSSL 2.8.0

3) 安装python3.7 
从官网下载python3.7的源码, 
解压后进入Python-3.7.0

编译前需要设置环境变量(重要) 
export LDFLAGS=”-L/usr/local/ssl/lib” 
export CPPFLAGS=”-I/usr/local/ssl/include” 
export PKG_CONFIG_PATH=”/usr/local/ssl/lib/pkgconfig”

./configure –prefix=/usr/python –enable-shared CFLAGS=-fPIC 
运行后会出现一堆信息: 
注意最后的ssl检查,如下图所示: 
 
如果ssl版本太旧或者编译前没有设置ssl的环境变量,这里是检测不到ssl的,安装完成后的pip3是无法使用的,这点非常关键!

检测通过后,运行 
make 
make install

ln -s /usr/python/bin/python3 /usr/bin/python3 
ln -s /usr/python/bin/pip3 /usr/bin/pip3

验证python 安装正确

import ssl没有报错

参考:http://ju.outofmemory.cn/entry/363322

最新文章

  1. ubuntu进行子域名爆破
  2. UI
  3. Spring(二)scope、集合注入、自动装配、生命周期
  4. Calendar获取星期
  5. 设计模式之美:Interpreter(解释器)
  6. 转:Web页面通过URL地址传递参数常见问题及检测方法
  7. node.js操作mongoDB数据库
  8. js小知识点
  9. mac中的myeclipse的控制台中文乱码问题解决办法
  10. SQL 自定义四舍五入
  11. [No0000186]治愈系课程教材 第一课
  12. iOS项目之WKWebView替换UIWebView相关
  13. 六、框架<iframe>、背景、实体
  14. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】原创教程连载导读【连载完成,共二十九章】
  15. 【Unity】12.4 通过网格分层选择行进路线
  16. 集合(三)CopyOnWriteArrayList
  17. [转] PHP读取HTTP接口如何处理超时
  18. scala程序运行的几种方式
  19. 使用PE工具箱 ughost 恢复系统导致被捆绑一堆软件的问题
  20. SQLSERVER2012误删数据恢复过程

热门文章

  1. Linux命令——getfacl、setfacl
  2. docker 常见问题处理汇总
  3. OpenStack核心组件-cinder存储服务
  4. ACAG 0x02-8 非递归实现组合型枚举
  5. Kotlin调用Java程序重点分析
  6. 【转载】Fiddler 抓包工具使用指北: 弱网络环境模拟限速测试流程
  7. Python开发应用之-SQL 建索引的几大原则
  8. 35 Top Open Source Companies
  9. janusgraph-mgmt中的一些操作
  10. 四行公式推完神经网络BP