Centos编译Python3.10解决openssl异常

news/2024/11/20 23:07:02/文章来源:https://www.cnblogs.com/yanmushi/p/18559567

问题描述

在Linux中进行Python应用部署时,安装Python3.10后,在pip安装依赖出现SSLError异常。

(venv) [root@server100 flask-app]# pip install flask
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
WARNING: 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.")': /pypi/simple/flask/
WARNING: 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.")': /pypi/simple/flask/
WARNING: 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.")': /pypi/simple/flask/
WARNING: 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.")': /pypi/simple/flask/
WARNING: 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.")': /pypi/simple/flask/
Could not fetch URL https://mirrors.aliyun.com/pypi/simple/flask/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='mirrors.aliyun.com', port=443): Max retries exceeded with url: /pypi/simple/flask/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
ERROR: Could not find a version that satisfies the requirement flask (from versions: none)
ERROR: No matching distribution found for flask
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://mirrors.aliyun.com/pypi/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='mirrors.aliyun.com', port=443): Max retries exceeded with url: /pypi/simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

问题原因

Python3.10引用的openssl是1.1+版本,而当前yum安装的openssl为1.0.2k版本。

解决方法

两种解决方法:

  • 修改configura文件中openssl11的引用
  • 手动编译openssl

前置准备


# 安装python需要的依赖
sudo yum groupinstall "Development Tools" -y
sudo yum install -y openssl-devel bzip2-devel libffi-devel# uWSGI 需要 EPEL(Extra Packages for Enterprise Linux)仓库。你可以通过以下命令安装 EPEL:
# 编译openssl时也需要
sudo yum install epel-release -y

方法一:yum安装openssl11(成功)

# 配置ssl
yum install -y epel-release.noarch
yum install -y openssl11 openssl11-devel# 替换openssl为openssl11
sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure# 重新编译,安装
sudo ./configure --enable-optimizationssudo make altinstall

方法二:手动编译openssl(未成功)

安装版本:3.0.14

# 安装perl
yum install -y gcc gcc-c++ zlib-devel libtool autoconf automake perl perl-IPC-Cmd perl-Data-Dumper perl-CPAN./config --prefix=/usr/local/openssl shared zlib 
make && make install# 配置LD_LIBRARY_PATH
echo "export LD_LIBRARY_PATH=/usr/local/openssl/lib64:$LD_LIBRARY_PATH" >> ~/.bashrc
echo "export PKG_CONFIG_PATH=/usr/local/openssl/lib64/pkgconfig" >> ~/.bashrc
source ~/.bashrc# 配置ldconfig
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf
ldconfig -v./configure --enable-optimizations --with-openssl=/usr/local/openssl
sudo make altinstall

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/837582.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

攻防世界-easyupload

打开环境有一个文件上传的界面 结合题目名字,这是一道木马上传的题目 直接上传木马图片 给出回显“Your file looks wicked”,这说明了此处的文件上传存在过滤首先尝试修改一句话木马的构造<?php @eval($_POST[1]);?><?=eval($_POST[1]);?>利用直接利用短标签…

yolo --- 官方提供的预训练模型

下载路径:https://github.com/ultralytics/ultralytics官方提供了不同规格的模型,其含义分别如下:规格含义示例YOLOv8 Nano 非常小 YOLOv8nYOLOv8 Small 小 YOLOv8sYOLOv8 Medium 中 YOLOv8mYOLOv8 Large 大 YOLOv8lYOLOv8 X(Extra Large) 非常大 YOLOv8x

关于远程连接虚拟机Network error: Connection timed out的问题

今日在使用MobaXterm远程连接虚拟机的时候报错Network error: Connection timed out。令我感到诧异,昨天都能连上,今天突然不行了。经过查看发现我所使用的NAT模式的ip并没有发生改变可以看到我这里虚拟机使用的是VMnet8解决方式为:1.在控制面版中搜索“网络”,点击查看网络…

基于木舟平台浅谈surging 的热点KEY的解决方法

一、概述上篇文章介绍了基于surging的木舟平台如何构建起微服务 ,那么此篇文章将介绍基于木舟平台浅谈surging 的热点KEY的解决方法木舟 (Kayak) 是什么?木舟(Kayak)是基于.NET6.0软件环境下的surging微服务引擎进行开发的, 平台包含了微服务和物联网平台。支持异步和响应式编…

单变量微积分学习笔记:线性和二阶近似(16)【3】

线性近似 公式 \(x \to x_0\),\(f(x) \approx f(x_0) + f(x_0)(x-x_0)\)【切线】推导: \(f(x_0) = \lim_{x \to x_0}\frac{f(x)-f(x_0)}{x-x_0}\)【导数的定义】推论 前提:\(x \approx 0\), \[\sin(x) \approx x \]\[\cos(x) \approx 1 \]\[e^x \approx 1 + x \]\[ln(x+1) …

Spring之OCP开闭原则和DIP依赖倒置原则

通过如下代码,来分析几个开发原则(OCP开闭原则和DIP依赖倒置原则) 代码结构1.Test类 package com.xu.spring6.client;import com.xu.spring6.web.UserAction;public class Test {public static void main(String[] args) {UserAction userAction = new UserAction();userAct…

Blog2-题目集4~6

一、前言: 本次的大作业,包含了两个部分,一个是之前的1-3大作业(答题程序)还剩余的一次迭代,另外两个是最近做的电路设计的迭代,总而来说,这些大作业都是对于自己能力的考验,也是对自己的提升。二、设计与分析: 大作业4最后一题: 1.源码分析: 这次的迭代相比于上次…

面试题精选04-使用Linq怎么将数据分组之后按时间排序取最新1条数据

实体类 public class Movie {public string Name { get; set; }public string Area { get; set; }public DateTime ProductTime { get; set; } }初始化数据 public static List<Movie> InitData() {List<Movie> data = new List<Movie>(){new Movie(){ Name=…

WEB攻防-PHP应用文件包含LFIRFI伪协议编码算法无文件利用黑白盒

什么是文件包含 1、原理 程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时, 直接调用此文件,而无须再次编写,这种调用文件的过程一般被称为文件包含。 在包含文件的过程中,如果文件能进行控制(如进行替换和修改),则存储文件包含漏洞白盒发现: 在php…

局部变量和成员变量的区别

1,区别2.内存位置不同如图,主方法里的变量stu1和stu2在栈内存,new开辟空间后,name变量在堆内存 . 3.生命周期不同 1.随着对象的消失而消失 https://kdocs.cn/l/cuQvFYJirzaR?linkname=150996495 主方法进栈,遇到method,method进栈,有new进堆,name成员变量进入空间 随着…

53.8 MB/s,新晋开源神器榨干你的网速:Gopeed!

软件介绍 今天给大家推荐一款全平台多线程高速下载器(支持磁力BT):Gopeed !Gopeed(全称 Go Speed),中文名叫做够快下载器,是一款由 Golang + Flutter 开发的现代化高速下载器,它是一款全平台多线程高速下载器,支持Windows、Macos、Linux、Android、iOS、Web、Docker、…

几个实用渲染技术原理和实现

一、快速高斯模糊 1.1 背景 ​ ​​  高斯模糊在wiki上定义为一种图像模糊滤波器,使用正态分布计算每个像素输出颜色。正态分布函数和图像如下所示: \[G(u,v)=\frac{1}{2\pi\delta^2}e^{(-u^2+v^2)/(2\delta^2)} \] ​ ​​  由图可以发现,当x在\(-3\delta\)到\(3\del…