centos6.8安装python3.7无法import _ssl的解决方法


Posted in Python onSeptember 17, 2018

公司运维提供的服务器是centos6.8,打算在上面装python3.7,结果费尽周折,按照网上的步骤python3.7能成功安装,但是import ssl却报找不到_ssl模块的错误:

import _ssl       # if we can't import it, let the error propagate
ImportError: No module named _ssl

在网上搜了各种方法,有说修改python3.7安装文件中的Setup.dist,将SSL部分注释掉,但自己注释掉仍然不行。有说重新装openssl库,配置python3.7的时候指定openssl,然而也是不行。反正网上各种博客说的方法都不万能,在我这都不行。之前安装的时候只是把安装步骤的linux命令敲一遍,也不明白是什么意思,为了彻底找出原因所在,自己反复折腾了2天,每条命令、每个参数选项都去搞明白到底是啥意思,最终终于把ssl这个模块搞定了,下面就把centos6.8安装python3.7的正确步骤写下。另,如果没有特殊要求,直接装python3.6就行,python3.6在centos6.8下傻瓜式安装就不会有此问题。

言归正传,安装步骤如下:

1、安装依赖库:

yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++

注意,这里yum源安装的openssl的最高版本是1.0.1:

[root@4ed99ab56fea /]# rpm -qa | grep openssl
openssl-1.0.1e-57.el6.x86_64
openssl-devel-1.0.1e-57.el6.x86_64

但是python3.7安装要求openssl最低版本是1.0.2,所以不能用yum安装的openssl,需要额外下载1.0.2的openssl来安装。

2、安装1.0.2版本的openssl

下载1.0.2版本的openssl

wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz

解压openssl源代码,并安装

tar -zxvf openssl-1.0.2j.tar.gz
./config --prefix=$HOME/openssl shared zlib
make && make install

注意!openssl配置是用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib。

3、设置环境变量LD_LIBRARY_PATH

echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile

这一步一定要有!!LD_LIBRARY_PATH环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib' and ‘/usr/lib',那么就需要指定环境变量LD_LIBRARY_PATH

4、解压python3.7,并安装,一定要指定刚才安装的1.0.2版本的openssl!!!

tar -zxvf Python-3.7.0.tgz
./configure --prefix=$HOME/Py37 --with-openssl=$HOME/openssl
make && make install

ok,至此python3.7就安装完了,来检验下ssl模块能否被导入吧:

[root@4ed99ab56fea bin]# ./python3
Python 3.7.0 (default, Sep 16 2018, 14:12:43)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> import _ssl
>>>

至此ok了!折腾了近2天,终于搞定了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
Python帮你识破双11的套路
Nov 11 Python
布隆过滤器的概述及Python实现方法
Dec 08 Python
pytorch实现线性拟合方式
Jan 15 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
python打开文件的方式有哪些
Jun 29 Python
Python接口测试环境搭建过程详解
Jun 29 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
Python包资源下载路径报404解决方案
Nov 05 Python
python实现简易名片管理系统
Apr 11 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 Python
Python从使用线程到使用async/await的深入讲解
Sep 16 #Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 #Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 #Python
python os.path模块常用方法实例详解
Sep 16 #Python
python中的不可变数据类型与可变数据类型详解
Sep 16 #Python
Python连接Mssql基础教程之Python库pymssql
Sep 16 #Python
python将秒数转化为时间格式的实例
Sep 16 #Python
You might like
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
vue+canvas实现移动端手写签名
2020/05/21 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
Python 字典与字符串的互转实例
2017/01/13 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python按比例随机切分数据的实现
2019/07/11 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
Python实现图片添加文字
2019/11/26 Python
解决pycharm 安装numpy失败的问题
2019/12/05 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
计算机专业推荐信范文
2013/11/27 职场文书
婚宴邀请函
2015/01/30 职场文书
2015年科普工作总结
2015/07/23 职场文书