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 17 Python
Linux下Python获取IP地址的代码
Nov 30 Python
Python中使用PDB库调试程序
Apr 05 Python
Python实现时钟显示效果思路详解
Apr 11 Python
详解python里的命名规范
Jul 16 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
Jun 23 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
May 24 Python
如何利用Python实现n*n螺旋矩阵
Jan 18 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 mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
jQuery live
2009/05/15 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
jQuery文字横向滚动效果的实现代码
2016/05/31 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python 中的 else详解
2016/04/23 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
python实现图书借阅系统
2019/02/20 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
2020/12/21 Python
质检员的岗位职责
2013/11/15 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
《将心比心》教学反思
2016/02/23 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书