从源码编译安装python3.6之后,用pip的时候可能会提示SSL错误,实际上是openssl和python的安装有问题,本文给出安装openssl和python3.6.6的完整过程。

1、编译安装openssl

首先说明在python3.6编译的时候没有 --with-ssl 这个参数,python3.6.6源码中setup.py中有下面几行:

# Detect SSL support for the socket module (via _ssl)search_for_ssl_incs_in = ['/usr/local/ssl/include','/usr/contrib/ssl/include/']ssl_incs = find_file('openssl/ssl.h', inc_dirs,search_for_ssl_incs_in)

这说明了编译的时候会在/usr/local/ssl的子路经中寻找ssl的头文件,所以使用参数--prefix将openssl安装在/usr/local/ssl即可。

(1) 首先解压文件,然后进入openssl源码目录,按下面的命令进行编译安装

./config --prefix=/usr/local/ssl
sudo make
sudo make install

(2)添加动态链接库路径

打开文件 /etc/ld.so.conf
在文件末尾添加ssl动态链接库的路径 /usr/local/ssl/lib
sudo ldconfig
ldconfig -p | grep libssl.so.3   # 查看动态链接库是否存在

 2、编译安装python3.6.6

(1) 编译安装

在python源码目录中执行下面的命令

sudo ./configure --prefix=/opt/python3.6.6
sudo make
sudo make install

安装结束后将 /opt/python3.6.6/bin下的python3.6和pip3.6软链到/usr/bin即可。

(2)安装验证

执行 sudo pip3.6 install onnx 测试pip是否正常,如果出现下面的错误,尝试执行下面第(3)步的文件修改,并重新编译安装。

Retrying (Retry(total=4, 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.",)':

(3) 解压并进入源码目录

修改文件 Modules/Setup,将下面所示的4行注释去掉(第209到212行)。网上有的文章说还需要修改Setup.dist,实际上我只修改了Setup,目前使用场景下没有出现问题。

207 # Socket module helper for SSL support; you must comment out the other
208 # socket line above, and possibly edit the SSL variable:
209 SSL=/usr/local/ssl
210 _ssl _ssl.c \
211         -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
212         -L$(SSL)/lib -lssl -lcrypto

有任何问题欢迎留言交流。

python3.6源码编译安装 解决SSL报错相关推荐

  1. 【已解决】ubuntu 16.04 源码编译opencv4.5.1 报错 “../../lib/libopencv_imgcodecs.so.4.5.0: undefined reference t”

    源码编译opencv可参考教程:在ubuntu下安装opencv4.1.0详细步骤https://blog.csdn.net/weixin_44003563/article/details/90404 ...

  2. 源码 linux下编译_Linux云服务器软硬链接及源码编译安装python3.8的一些备注

    推荐一个简书作者写的从零开始学习Linux,非常细,授人以鱼不如授人以渔. https://www.jianshu.com/p/54c0e6a1da99 正文:看一下服务器的版本 cat /proc/ ...

  3. ubuntu安装python_ubuntu18.04下源码编译安装最新版本Python3

    原文链接:ubuntu18.04下源码编译安装最新版本Python3 截止到2019年4月9日,Python3最新的版本是3.7.3. 在ubuntu18.04中已经安装的Python3版本是3.6. ...

  4. 源码编译安装PHP7.4,解决openssl,libxml2,libcurl依赖的问题

    使用源码编译安装PHP7.4是在各种Linux平台上安装PHP的主要形式,通常会遇到各种错误,不是缺少依赖,就是依赖的库版本太低. 主要问题 本人编译PHP碰到的错误主要有如下几个: 1)libxml ...

  5. python版本升级后编译_ubuntu18.04下源码编译安装最新版本Python3

    截止到2019年4月9日,Python3最新的版本是3.7.3. 在ubuntu18.04中已经安装的Python3版本是3.6.7,下面我们就演示一下如何在ubuntu18.04下源码编译安装Pyt ...

  6. Jetson TX1刷机教程(解决Auvidea carrier boards(2x USB3.0)+ 源码编译安装opencv3.2存储空间不足问题)

    最近一周感觉都是在给Jetson TX1刷机,然而每次都得各种查资料,然后从师兄那得到启示(养成记录的好习惯),感觉是时候写下刷机的心路历程了. Jetson TX1刷机不难,直接跟着官方教程走就行D ...

  7. 详解LAMP源码编译安装

    实战:LAMP源码编译安装 家住海边喜欢浪:zhang789.blog.51cto.com 目录 详解LAMP源码编译安装 LAMP简介 一.准备工作 二.编译安装 Apache 三.编译安装 MyS ...

  8. linux下源码安装vim,ubuntu 源码编译安装最新的vim 8.0

    为什么要源码编译安装VIM? 因为我要安装ycm,但是ubuntu14.04仓库vim版本低 教程步骤: 1, 核对系统版本 2, 删除系统自带的vim 3, 编译安装vim 4, 检验vim的安装 ...

  9. 【CV实战】Ubuntu18.04源码编译安装opencv-3.4.X+测试demo

    之前在Windows上借助VS编译opencv,很轻松就能搞定,到Linux下踩了坑,Ubuntu下编译.卸掉重编.搞了几次,还把系统库给卸载掉了(sudo apt-get remove python ...

最新文章

  1. Understanding Stock Types in SAP EWM
  2. python爬虫xpath的语法
  3. [转] 前端数据驱动的价值
  4. python序列类型-Python数值类型和序列类型
  5. python数据结构的列表_Python内置数据结构——列表list
  6. leetcode-19-删除链表的倒数第N个节点
  7. centos写mysql光标移到上一行_python操作mysql——使用pymysql库
  8. 继电器触点粘连分析_在我们日常电气维护中如何避免由于继电器触点粘连造成的设备故障...
  9. 设计灵感|色彩与形状巧妙运用在创意时尚海报设计中
  10. 如何暴露内网主机到外网
  11. java通过jdbc访问数据库
  12. 【毕业设计】基于Android的家校互动平台开发(内含完整代码和所有文档)——爱吖校推(你关注的,我们才推)...
  13. ESAPI集成官方参考文档
  14. 软考计算机硬件知识,软考程序员考点计算机硬件基础知识之存储器简介
  15. ps图层高级扩展知识
  16. 发生系统错误 67,找不到网络名
  17. matlab 画思维图像,「4」图像思维
  18. java基础常见面试题
  19. 质量与效能 | 11月29日TF84
  20. 炒币的诱惑、安稳的生活

热门文章

  1. C++多线程:thread_local
  2. 极客日报:阿里再度调整组织架构:天猫淘宝大融合,新设三大中心;苹果M1首席芯片设计师跳槽至英特尔
  3. 初探 Ettercap: ARP投毒 DNS欺骗
  4. linux串口驱动安装 RPM,Devart数据库工具【教程】:在Linux(DEB / RPM)上安装和配置ODBC驱动程序...
  5. c++: Logger日志信息
  6. html编辑器的值+dede,dedecms升级ckeditor为ueditor编辑器,详细修改方法和步骤
  7. color-scheme 属性根据操作系统配色方案调整页面样式
  8. jpa整合querydsl实现简单查询以及左联查询
  9. 模拟登录12306网站
  10. 概率论复习笔记——条件概率、全概率、贝叶斯公式及其应用