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装饰器验证配置文件示例
Feb 24 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 Python
浅谈python迭代器
Nov 08 Python
Linux下安装python3.6和第三方库的教程详解
Nov 09 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
python的命名规则知识点总结
Oct 04 Python
python通过matplotlib生成复合饼图
Feb 06 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
Python3.9新特性详解
Oct 10 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
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
跟老齐学Python之??碌某?? target=
2014/09/12 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
pandas数据集的端到端处理
2019/02/18 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
python如何保证输入键入数字的方法
2019/08/23 Python
python中自带的三个装饰器的实现
2019/11/08 Python
python装饰器使用实例详解
2019/12/14 Python
Python测试线程应用程序过程解析
2019/12/31 Python
python 实现IP子网计算
2021/02/18 Python
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
怎样声明子类
2013/07/02 面试题
教师的实习自我鉴定
2013/12/17 职场文书
考试退步检讨书
2014/01/15 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
Python集合set()使用的方法详解
2022/03/18 Python