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 相关文章推荐
Django中的“惰性翻译”方法的相关使用
Jul 27 Python
Python正则表达式使用经典实例
Jun 21 Python
在centos7中分布式部署pyspider
May 03 Python
Python将多份excel表格整理成一份表格
Jan 03 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
利用pandas进行大文件计数处理的方法
Jul 25 Python
10个Python小技巧你值得拥有
Sep 29 Python
python使用knn实现特征向量分类
Dec 26 Python
Python unittest生成测试报告过程解析
Sep 08 Python
python编写实现抽奖器
Sep 10 Python
python批量修改文件名的示例
Sep 27 Python
pyqt5实现井字棋的示例代码
Dec 07 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 is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
smarty实现多级分类的方法
2014/12/05 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
python爬虫基础之urllib的使用
2020/12/31 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
房屋租赁授权委托书范本
2014/09/20 职场文书
2015年师德表现自我评价
2015/03/05 职场文书