前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3.7安装后ssl问题

python3.7安装后ssl问题

作者头像
py3study
发布2020-01-06 18:48:00
5.6K0
发布2020-01-06 18:48:00
举报
文章被收录于专栏:python3python3

pip3报错

安装python3.7.0后发现使用pip会出现如下报错:

代码语言:javascript
复制
[root@localhost ~]# /usr/local/python3/bin/pip3 install virtualenv
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting virtualenv
  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.")': /simple/virtualenv/
  Retrying (Retry(total=3, 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/virtualenv/
  Retrying (Retry(total=2, 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/virtualenv/
  Retrying (Retry(total=1, 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/virtualenv/
  Retrying (Retry(total=0, 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/virtualenv/
  Could not fetch URL https://pypi.org/simple/virtualenv/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/virtualenv/ (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 virtualenv (from versions: )
No matching distribution found for virtualenv
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

由于我的系统是CentOS release 6.7,所有openssl的版本为OpenSSL 1.0.1e-fips 11 Feb 2013,而python3.7需要的openssl的版本为1.0.2或者1.1.x,需要对openssl进行升级,并重新编译python3.7.0

升级openssl

1.下载最新版openssl

代码语言:javascript
复制
https://www.openssl.org/source/openssl-1.1.1-pre8.tar.gz

2.编译安装

代码语言:javascript
复制
cd openssl-1.1.1-pre8
./config --prefix=/usr/local/openssl no-zlib #不需要zlib
make
make install

3.备份原配置

代码语言:javascript
复制
[root@s2-hadoop-test ~]# mv /usr/bin/openssl /usr/bin/openssl.bak
[root@s2-hadoop-test ~]# mv /usr/include/openssl/ /usr/include/openssl.bak

4.新版配置

代码语言:javascript
复制
#将安装好的openssl 的openssl命令软连到/usr/bin/openssl
[root@s2-hadoop-test ~]# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
#软链到升级后的libssl.so
[root@s2-hadoop-test ~]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so

#将安装好的openssl命令软连到/usr/bin/openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

5.修改系统配置

代码语言:javascript
复制
#写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
#使修改后的/etc/ld.so.conf生效 
ldconfig -v

6.查看openssl版本

代码语言:javascript
复制
openssl version
OpenSSL 1.1.1-pre8 (beta) 20 Jun 2018

重新安装python

注意:需要指定openssl的安装路径,--with-openssl

代码语言:javascript
复制
./configure --prefix=/usr/local/python37 --with-openssl=/usr/local/openssl
make
make install
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pip3报错
  • 升级openssl
  • 重新安装python
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档