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简单遍历字典及删除元素的方法
Sep 18 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
Python3使用SMTP发送带附件邮件
Jun 16 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
Django框架 Pagination分页实现代码实例
Sep 04 Python
python中return的返回和执行实例
Dec 24 Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
Python Selenium实现无可视化界面过程解析
Aug 25 Python
使用Python提取文本中含有特定字符串的方法示例
Dec 09 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
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
javascript 写的一个简单的timer
2009/07/30 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
提取字符串中年月日的函数代码
2013/11/05 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
js字符串与Unicode编码互相转换
2017/05/17 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
Python中对列表排序实例
2015/01/04 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
python的文件操作方法汇总
2017/11/10 Python
python并发2之使用asyncio处理并发
2017/12/21 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
火山动力Java笔试题
2014/06/26 面试题
市场营销专业毕业生自荐信
2013/11/02 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
硕士学位申请报告
2015/05/15 职场文书
听课评课活动心得体会
2016/01/15 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python