欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python3.7安装, 解决pip is configured with locations that require TLS/SSL问题

程序员文章站 2024-02-06 17:13:58
python3.7安装, 解决pip is configured with locations that require TLS/SSL问题1.安装相关依赖 yum install gcc libffi-devel zlib* openssl-devel# libffi-devel zlib-dev ......

python3.7安装, 解决pip is configured with locations that require tls/ssl问题
1.安装相关依赖

yum install gcc libffi-devel zlib* openssl-devel
# libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make


2.下载并解压
wget https://www.python.org/ftp/python/3.7.1/python-3.7.1.tar.xz
# 下载
wget https://www.python.org/ftp/python/3.7.1/python-3.7.1.tar.xz
# 解压并编译:
tar -xvjf python-3.7.1.tar.xz
cd python-3.7.1

3.编译安装
./configure prefix=/usr/local/python3
make && make install
# 编译完成后,创建软链接文件到执行文件路径:
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
# 我们可以清除之前编译的可执行文件及配置文件 && 清除所有生成的文件:
make clean && make distclean

bug: 使用pip 命令失败
2.1 错误信息
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

2.2 原因
系统版本centos6.5,其中openssl的版本为openssl 1.0.1e-fips 11 feb 2013,而python3.7需要的openssl的版本为1.0.2或者1.1.x,需要对openssl进行升级,并重新编译python3.7.0。yum 安装的openssl 版本都比较低。

2.3 升级openssl
# 1.下载openssl
wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
tar -zxvf openssl-1.1.1a.tar.gz
cd openssl-1.1.1a
# 2.编译安装
./config --prefix=/usr/local/openssl no-zlib #不需要zlib
make
make install
# 3.备份原配置
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak
# 4.新版配置
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 5.修改系统配置
## 写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
## 使修改后的/etc/ld.so.conf生效 
ldconfig -v
# 6.查看openssl版本
openssl version

openssl version 提示:

 /usr/local/openssl/bin/openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: no such file or directory

假如你的libssl.so.1.1 文件在/usr/local/openssl/lib/下面,可以这样做

ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
python3.7安装, 解决pip is configured with locations that require TLS/SSL问题

 

 


3.3 重新安装python
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make
make install

转自:https://www.cnblogs.com/zmdComeOn/p/11712352.html