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脚本生成Android SALT扰码的方法
Sep 18 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
用Python爬取QQ音乐评论并制成词云图的实例
Aug 24 Python
Python3.8对可迭代解包的改进及用法详解
Oct 15 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
关于Tensorflow分布式并行策略
Feb 03 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
Jan 30 Python
字典算法实现及操作 --python(实用)
Mar 31 Python
Python OpenCV快速入门教程
Apr 17 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 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
基于mysql的论坛(7)
2006/10/09 PHP
PHP 批量更新网页内容实现代码
2010/01/05 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
PHP线程的内存回收问题
2016/07/08 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
python运行时间的几种方法
2016/06/17 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
创业计划书如何编写
2014/02/06 职场文书
认识深刻的检讨书
2014/02/16 职场文书
大学开学计划书
2014/04/30 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
机械工程师岗位职责
2014/06/16 职场文书
初中优秀学生评语
2014/12/29 职场文书
物流业务员岗位职责
2015/04/03 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
SpringBoot Http远程调用的方法
2022/08/14 Java/Android