编译安装完Python3之后,使用pip来安装python库,发现了如下报错:

$ pip install numpy

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Collecting numpy

Retrying (Retry(total=, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/numpy/

Retrying (Retry(total=, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/numpy/

Retrying (Retry(total=, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/numpy/

Retrying (Retry(total=, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/numpy/

Retrying (Retry(total=, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/numpy/

Could not fetch URL https://pypi.python.org/simple/numpy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/numpy/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)) - skipping

Could not find a version that satisfies the requirement numpy (from versions: )

No matching distribution found for numpy

网上说了一种解决方案,是在./configure 的时候,加上--with-ssl选项,然后重新编译安装,尝试了下:

$ ./configure --with-ssl

... ...

configure: WARNING: unrecognized options: --with-ssl

... ...

出了个警告:不可识别的--with-ssl选项。

./configure --help看了下确实也没发现这个选项,估计是版本不一致,不大想折腾这个版本问题了,决定换个思路。

尝试安装openssl:

$ sudo yum install openssl

安装成功之后,重新编译安装,依旧报这个错,但是在make的时候有了一些发现:

$ make

... ...

Python build finished successfully!

The necessary bits to build these optional modules were not found:

_bz2 _curses _curses_panel

_dbm _gdbm _lzma

_sqlite3 _ssl _tkinter

readline

To find the necessary bits, look in setup.py in detect_modules() for the module's name.

可以看到,这里虽然make成功了,但是报了很多模块缺失,查看下编译安装目录下的setup.py,搜索_ssl,可以定位到如下代码:

843 # Detect SSL support for the socket module (via _ssl)

844 search_for_ssl_incs_in = [

845 '/usr/local/ssl/include',

846 '/usr/contrib/ssl/include/'

847 ]

848 ssl_incs = find_file('openssl/ssl.h', inc_dirs,

849 search_for_ssl_incs_in

850 )

851 if ssl_incs is not None:

852 krb5_h = find_file('krb5.h', inc_dirs,

853 ['/usr/kerberos/include'])

854 if krb5_h:

855 ssl_incs += krb5_h

856 ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,

857 ['/usr/local/ssl/lib',

858 '/usr/contrib/ssl/lib/'

859 ] )

860

861 if (ssl_incs is not None and

862 ssl_libs is not None):

863 exts.append( Extension('_ssl', ['_ssl.c'],

864 include_dirs = ssl_incs,

865 library_dirs = ssl_libs,

866 libraries = ['ssl', 'crypto'],

867 depends = ['socketmodule.h']), )

868 else:

869 missing.append('_ssl')

可以看到,setup.py会在'/usr/local/ssl/include', '/usr/contrib/ssl/include/' 这两个目录里面搜索'openssl/ssl.h' 这个头文件,然后会在 '/usr/local/ssl/lib' 和 '/usr/contrib/ssl/lib/' 之中搜索 ssl 的 lib文件,搜索不到,会将_ssl加入missing这个数组里面,然后寻找missing调用的地方:

if missing:

print()

print("Python build finished successfully!")

print("The necessary bits to build these optional modules were not "

"found:")

print_three_column(missing)

print("To find the necessary bits, look in setup.py in"

" detect_modules() for the module's name.")

print()

找到了上面报错时候的输出,很明显,是由于搜索不到ssl.h头文件或者搜索不到lib文件而导致的报错,但是我刚刚明明是装了openssl的啊,为啥还会报找不到呢?手动搜索下:

$ sudo find / -name ssl.h

没找到ssl.h,折腾了一番之后,找到了如下命令:

$ sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

可以看到,这个命令安装的是openssl-devel,与我之前安装的openssl有所不同,查阅资料之后发现,openssl只包含了可执行部分,openssl-devel才包含了头文件、头文件参考、某些库文件等跟开发相关的东西。所以只安装openssl是找不到相应的头文件的,安装完之后,再次编译:

$ make clean

$ make

... ...

Python build finished successfully!

The necessary bits to build these optional modules were not found:

_dbm _gdbm _lzma

To find the necessary bits, look in setup.py in detect_modules() for the module's name.

果然发现,缺失的模块少了很多。

继续安装:

$ sudo make install

安装完之后,重新执行pip:

$ pip install numpy

Collecting numpy

Downloading https://files.pythonhosted.org/packages/68/1e/116ad560de97694e2d0c1843a7a0075cc9f49e922454d32f49a80eb6f1f2/numpy-1.14.5-cp36-cp36m-manylinux1_x86_64.whl (12.2MB)

6% |██ | 747kB 10kB/s eta 0:17:52

至此,pip安装报错的问题解决。

转 Python3 ssl模块不可用的问题

编译安装完Python3之后,使用pip来安装python库,发现了如下报错:   $ pip install numpy pip is configured with locations tha ...

Python升级后ssl模块不可用问题解决和浅析

在Cent0S 7.5下将Python 2.7.5升级到Python 3.6.6后,发现ssl模块不可用,具体详细信息如下所示: [root@db-server ~]# pip list Packag ...

Python3中无法导入ssl模块的解决办法

这个问题,已经困扰我好几天了,本萌新刚开始接触python,想爬取几个网页试试,发现urllib无法识别https,百度后才知道要导入ssl模块,可是发现又报错了. 本人实在无法理解为什么会报错,因为 ...

ubuntu下安装python3.6.5导入ssl模块失败

1.问题 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python3 Python ( , ::) [GCC (Red Hat -)] on linux2 ...

pip命令出现了问题,提示说找不到ssl模块

Could not find a version that satisfies the requirement pygame (from versions: ) No matching distrib ...

[转]python3之模块psutil系统性能信息

转自:https://www.cnblogs.com/zhangxinqi/p/9106265.html 阅读目录 1.psutil模块安装 2.获取CPU信息 3.内存信息 4.磁盘信息 5.网络信 ...

解决centos6系统上python3—flask模块的安装问题

Flask 是一个使用 Python 编写的轻量级 Web 框架(所以我们前面花了那么多时间安装 Python3 呀).它被称为微型架构,因为其使用非常简单的核心以及功能丰富的扩展.虽然 Flask ...

python安装完毕后,提示找不到ssl模块的解决步骤

转载自 醇酒醉影 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, ...

编译安装带ssl 模块指定版本Python

出现这个或者fatal error: openssl/名单.h: No such file or directory.都是没有安装libssl-dev- libssl-dev包含libraries ...

随机推荐

Knockout应用开发指南(完整版) 目录索引

http://learn.knockoutjs.com/  所有示例和代码都在在上面直接运行预览 注意:因为它用了google的cdn加速,所要要用代_理+_翻_墙才能正常加载 使用Knockout有 ...

CSS3线性渐变linear-gradient

转自 http://www.w3cplus.com/content/css3-gradient CSS3的线性渐变 一.线性渐变在Mozilla下的应用 -moz-linear-gradient( [ ...

Spring AMQP + Rabbit 配置多数据源消息队列

一般在稍微大一点的项目中,需要配置多个数据库数据源,最简单的方式是用 Spring 来实现,只需要继承 AbstractRoutingDataSource 类,实现 determineCurrentL ...

Visual Studio Code--开发大大们都在用的编辑器

老公推荐的炒鸡nb的编辑器...说让我看起来像个假大神(微笑脸) 如何用VSCode练习python呢,还有VSCode有哪些常用的功能和快捷键呢?我会持续更新中... 1. 先来换个喜欢的颜色主题吧 ...

sql-向已有数据的表添加约束

语法: alter table 表名 with nocheck add constraint 约束名 约束类型 具体的约束说明 对表中现有的数据不做检查, 只对添加约束后再录入的数据进行检查. 例子: ...

C++进阶--拥有资源句柄的类(浅拷贝,深拷贝,虚构造函数)

// Person通过指针拥有string class Person { public: Person(string name) { pName_ = new string(name); } ~Per ...

spring框架的概述与入门

1. Spring框架的概述 * Spring是一个开源框架 * Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J ...

springboot学习入门之三---启动原理

3启动原理 3.1启动类 @SpringBootApplication public class Application { public static void main(String[] args ...

vue构造器以及实例属性

一.构造器 1.vue.js就是一个构造器,通过构造器Vue来实例化一个对象:例如:var vm = new Vue({}); 2.实例化Vue时,需要传入一个参数(选项对象): 3.参数:选项对象可 ...

PHP导入Excel表

初始化参数,先导入PHPExcel类 /** * 读出Excel表格数据 * @param $filename 文件名 * @param string $encode 编码格式 * @return a ...

python ssl模块详解_Python3 ssl模块不可用的问题相关推荐

  1. Python choices()函数详解、random模块下的常用函数

    random模块下的方法详解: 1.random.random() 随机生成一个[0,1)之间的浮点数. 2.random.randint(a,b) 随机生成[a,b]范围内一个整数. 3.rando ...

  2. 【Python】模块详解/如何安装模块的方法

    什么是模块 一.模块.包 ①模块 Python 模块(Module) 实质上就是一个python集成文件.它是用来组织代码的,包含了 Python 对象定义和Python语句,意思就是把python代 ...

  3. python的pygame模块详解_python游戏模块学习之pygame常规操作讲解

    pygame常规操作 导入模块 import pygame # 导入pygame模块 from sys import exit # 导入退出鼠标点击事件 from math import pi # 导 ...

  4. TLS/SSL 协议详解 (30) SSL中的RSA、DHE、ECDHE、ECDH流程与区别

    我的TLS实现:https://github.com/mrpre/atls/ 大家可以参考,代码里面的逻辑较清晰. 我的SSL专栏见:https://blog.csdn.net/mrpre/artic ...

  5. python中time模块详解_Python time模块详解

    time 模块主要包含各种提供日期.时间功能的类和函数.该模块既提供了把日期.时间格式化为字符串的功能,也提供了从字符串恢复日期.时间的功能. 在 Python 的交互式解释器中先导入 time 模块 ...

  6. python pexpect模块详解_python pexpect模块

    Pexpect模块简介: Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 ...

  7. python email模块详解_python email模块

    python email模块 email模块 电子邮件包是一个用于管理电子邮件消息的库.它的特殊设计不用于向SMTP (RFC 2821).NNTP或其他服务器发送任何电子邮件消息;这些是模块的函数, ...

  8. python logging模块详解_python logging模块使用总结

    目录 logging模块 日志级别 CRITICAL 50 ERROR 40 WARNING 30 INFO 20 DEBUG 10 logging.basicConfig()函数中的具体参数含义 f ...

  9. python中os模块详解_Python OS模块(常见文件操作示例)

    1 Python 常见文件操作示例 2. 3. os.path 模块中的路径名访问函数 4. 分隔 5. basename() 去掉目录路径 , 返回文件名 6. dirname() 去掉文件名 , ...

最新文章

  1. HanLP-最短路径分词
  2. 【转】Android中定时器的3种实现方法
  3. 快速修复 Log4j2 远程代码执行漏洞步骤
  4. 服务器返回文件格式,iOS开发--服务器返回的数据解析
  5. linux建模工具有哪些,linux uml 免费 建模工具
  6. 十八、泛型 l 注解 l Servlet3.0 l 动态代理 l 类加载器基础加强
  7. Qt使用Qtxlsx读写xlsx文件
  8. Ubuntu快速设置指南
  9. 收藏|史上最全最实用的运营工具库,你想要的都在!
  10. Unity (三) NavMeshAgent之:分层路面导航(王者荣耀,英雄联盟中小兵分三路进攻敌方)...
  11. 懒惰还是懦弱?你真的不行吗?
  12. ps端午节计算机辅助设计,PS教程:端午节的字体设计
  13. Cypress UI 自动化测试框架
  14. qq快捷登陆 php代码,qq互联--qq快捷登陆
  15. origin如何绘制双y轴曲线_使用Origin软件绘制双y轴曲线图的过程
  16. 语音信号处理-基础(二): 发声生理、听觉生理与听觉心理
  17. 万台服务器一人挑的奥秘
  18. 在c语言中出现的int错误类型,【揭秘】C语言类型转换时发生了什么?
  19. php怎么用不了图像处理函数,php图像处理函数
  20. mac网易云音乐,脚本实现睡眠功能

热门文章

  1. Unable to execute HTTP request:The request signature we calculated does not match the signature you
  2. 网页中实现在线客服功能
  3. VMware虚拟机安装Ubuntu教程
  4. 2023年最值得下载的Macbook电脑必备实用10款软件推荐,装了绝不后悔!
  5. 关于WPA/WPA2 4次握手
  6. 25个新鲜出炉的 Photoshop 实例学习教程
  7. 简单聊聊Echarts伪3D地图实现的相关配置
  8. matlab比较e 和兀e的大小,浅谈π与e之间的关系,带你领略神奇的数学之美
  9. Kindle Paperwhite 2使用体验
  10. 大数据学习笔记(二)-分级类聚列类聚