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中的rjust()方法使用详解
May 19 Python
八大排序算法的Python实现
Jan 28 Python
Python 中的 else详解
Apr 23 Python
Python 中 Virtualenv 和 pip 的简单用法详解
Aug 18 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Python读csv文件去掉一列后再写入新的文件实例
Dec 28 Python
python 用下标截取字符串的实例
Dec 25 Python
Django中的FBV和CBV用法详解
Sep 15 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 Python
Jupyter Notebook远程登录及密码设置操作
Apr 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
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
JavaScript库 开发规则
2009/01/31 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
Python高效编程技巧
2013/01/07 Python
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
浅析Python中的多条件排序实现
2016/06/07 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
详解python配置虚拟环境
2019/04/08 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
thinkphp5 路由分发原理
2021/03/18 PHP
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
网上商城创业计划书范文
2014/01/31 职场文书
工商干部先进事迹
2014/05/14 职场文书
争先创优公开承诺书
2014/08/30 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
解决numpy数组互换两行及赋值的问题
2021/04/17 Python