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中的字典与成员运算符初步探究
Oct 13 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
python模块导入的细节详解
Dec 10 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
python如何求100以内的素数
May 27 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 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
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
zend framework重定向方法小结
2016/05/28 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
浅谈五大Python Web框架
2017/03/20 Python
Python读取word文本操作详解
2018/01/22 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
Django框架安装方法图文详解
2019/11/04 Python
Python学习之time模块的基本使用
2021/01/17 Python
匡威德国官网:Converse德国
2019/01/26 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
工程现场管理求职自荐信
2013/10/02 职场文书
资料员的岗位职责
2013/11/20 职场文书
学生个人评语大全
2015/01/04 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android