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 re正则表达式模块(Regular Expression)
Jul 16 Python
Python装饰器用法示例小结
Feb 11 Python
python使用matplotlib绘制热图
Nov 07 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
May 25 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
聊聊python在linux下与windows下导入模块的区别说明
Mar 03 Python
python删除csv文件的行列
Apr 06 Python
Python中相见恨晚的技巧
Apr 13 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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
smarty缓存用法分析
2014/12/16 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
JavaScript中的this机制
2016/01/30 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
js实现tab切换效果
2017/02/16 Javascript
JSONP跨域请求
2017/03/02 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
JS在if中的强制类型转换方式
2018/07/15 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
NodeJS和浏览器中this关键字的不同之处
2021/03/03 NodeJs
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
python3处理含有中文的url方法
2018/05/10 Python
python日志logging模块使用方法分析
2019/05/23 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
盛大二次面试题
2016/11/18 面试题
物业工作计划书
2014/01/10 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
导游词之包公祠
2019/11/25 职场文书
python中的getter与setter你了解吗
2022/03/24 Python