Centos7编译Python3.11源码并安装完成的详细教程

Python3.11的Linux源码:

Index of /ftp/python/icon-default.png?t=N7T8https://www.python.org/ftp/python/由于Centos7里自带的openssl是1.0版本的,而Centos Stream8和9用的是openssl-1.1.1版本的。

注意:openssl必须是openssl-1.1.1版本的,虽然最高版本已经到了3.x,但是必须用openssl-1.1.1版本的,否则会出现如下错误:

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

1、安装openssl1.1.1,替换掉旧的openssl

下载网址:

[ Downloads ] - /source/index.htmlicon-default.png?t=N7T8https://www.openssl.org/source/

tar -zxvf openssl-1.1.1w.tar.gz

二、编译安装

 在以后所有操作之前必须执行以下操作,不然会失败,需要安装好编译环境:

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
cd openssl-1.1.1w

指定安装路径并编译

编译前需要:

yum install perl-IPC-Cmd -y
yum install -y gcc

 然后编译: 

./config --prefix=/usr/local/openssl 
make && make install

三、替换当前系统的旧版本 openssl 「先保存原来的」

mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/lib64/openssl /usr/lib64/openssl.old
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v 

四、最后查看当前系统 openssl 版本

openssl version

五、编译Python3.11

cd Python-3.11.7
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

六、重启后验证

 完成!!!!!!

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

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

相关文章

QT的事件机制

QT的事件机制 文章目录 QT的事件机制 1、QT的事件机制。2、QT事件的整体流程。1、事件处理函数。1、鼠标按下与鼠标释放事件。2、事件的接收与忽略(accept()和ignore()函数)。 2.事件的分发enevt()1、事件分发的dome。2、enevt事件的缺点。 3、事件的过滤器。 3、总…

通过本质看现象:关于Integer受内部初始化赋值范围限制而出现的有趣现象

文/朱季谦 这是我很多年前的第一篇技术博客,当时作为一名技术小菜鸟,总体而言显得很拙见,但也算是成长路上的一个小脚印,希望能在以后的日子里,可以对JAVA技术有一个更加深入的思考与认识。 前几天我在逛论坛的时候&a…

SSM基础入门

SSM Mybatis、Spring和SpringMVC这三个框架整合在一起完成业务功能开发 文章目录 SSM5.1 流程5.2 详细步骤5.2.1 基本配置5.2.2 功能模块开发5.2.3 测试5.2.3.1 单元测试5.2.3.2 PostMan测试 5.3 统一结果封装5.3.1 概念5.3.2 实现 5.4 统一异常处理5.4.1 异常处理器的使用5.4…

自学习算法

自学习算法是一种基于深度学习的技术,通过大量的数据和模型训练,不断优化和改进模型的表现。 具体来说,自学习算法包括以下几个方面: 1.数据预处理:在训练模型之前,需要对大量的数据进行清洗、去重、标注…

Linux Centos7静默安装(非图形安装)Oracle RAC 11gR2(Oracle RAC 11.2.0.4)

Oracle RAC (全称Oracle Real Application Clusters )静默安装(非图形安装)教程。 由于这篇文章花费了我太多时间,设置了仅粉丝可见,见谅。 环境说明: 虚拟机软件:VMware Workstation 16 Pro…

Git与VScode联合使用详解

目录 Git与VScode联合使用 方式一 1. 用vscode打开文件夹,如图点击初始化仓库,把此仓库初始为git仓库。 2. 提交文件到本地仓库 3. vscode与github账号绑定 4. 在github中建立远程仓库 5. 本地仓库与远程仓库绑定 方式二 1. 在github上建立远程仓…

VSCode添加Python解释器并安装Python库

目录 一、安装VSCode 二、安装Python解释器 1、安装包链接 2、安装过程 3、测试 4、安装flake8和yapf两个包 (1)安装flake8包 (2)安装yapf包 三、VSCode中选择python解释器 一、安装VSCode VSCode安装教程(默…

Windows之任意文件删除到提权

前言 ZDI 发表过从任意文件夹删除到提权的利用过程,还提供了任意文件删除到提权的利用过程,所以一字之差但是漏洞利用方式也是有细微偏差的。 这里把任意文件删除和任意文件夹删除漏洞提权结合起来分析,是因为其最后的利用过程是一样的&…

Linux内核 - 同步机制之完成事件

背景 在复杂的软件系统中,常常存在多个并行运行的异步逻辑,然而,有些情况下,我们需要确保某些逻辑按照特定的时序顺序执行,以满足严格的时序要求。在这种情况下,我们可以使用同步机制,具体来说…

认识监控系统zabbix

利用一个优秀的监控软件,我们可以: ●通过一个友好的界面进行浏览整个网站所有的服务器状态 ●可以在 Web 前端方便的查看监控数据 ●可以回溯寻找事故发生时系统的问题和报警情况 了解zabbix zabbix是什么? ●zabbix 是一个基于 Web 界面的提供分布…

JVM:从零到入门

JVM,就是Java虚拟机。 JVM是一个巨大的话题,我们本文主要简单介绍一些围绕JVM相关的基础知识。 目录 JVM内存区域划分 本地方法栈 虚拟机栈 堆 程序计数器 方法区/ 元数据区 类加载 1.加载 2.验证 3.准备 4.解析 5.初始化 双亲委派模型 …

yydict属性字典-一种更加方便的方式访问字典

yydict属性字典-一种更加方便的方式访问字典 问题引入 这篇文章是想介绍 最近在使用字典的一种困惑. 我希望通过少写几个字符来访问 python中字典这种数据结构. 比如这个例子: person {name: frank,age: 18,hobby: swimming }在python中字典的定义 如上面的例子, 如果我希…

描述 power iteration(幂法)是啥?

幂法(Power Iteration)是一种迭代算法,用于计算一个矩阵的最大特征值和对应的特征向量。它是特征值求解问题中常用的一种方法。 幂法基于以下观察:如果一个矩阵 A 的某个特征向量 x 对应的特征值 λ 是最大的,那么当将…

spring boot mybatis plus mapper如何自动注册到spring bean容器

##Import(AutoConfiguredMapperScannerRegistrar.class) ##注册MapperScannerConfigurer ##MapperScannerConfigurer.postProcessBeanDefinitionRegistry方法扫描注册mapper ##找到mapper候选者 ##过滤mapper 类 候选者 ##BeanDefinitionHolder注册到spring 容器

vue项目之.env文件.env.dev、test、pro

.env文件是vue运行项目时的环境配置文件。 .env: 全局默认配置文件,所有环境(开发、测试、生产等)均会加载并合并该文件 .env.development(开发环境默认命名) 开发环境的配置,文件名默认为.env.development,如果需要改名也是可以的&#xf…

安卓主板_MTK联发科低功耗迷你安卓核心板开发板定制开发

卓越V100安卓主板 是新移科技推出的4G物联网行业通用主板。卓越V100安卓主板基于 联发科MT6761安卓核心板设计,支持运行Android9.0 系统,通用性强,有很好的人机交互性,可进行二次开发,有良好的移植性。 另外&#xff…

面试经典150题(82-83)

leetcode 150道题 计划花两个月时候刷完,今天(第四十一天)完成了2道(82-83)150: 82.(133. 克隆图)题目描述: 给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝&#xff08…

ZZULIOJ 1118: 数列有序

题目描述 一个非递减有序的整型数组有n个元素,给定一个整数num,将num插入该序列的适当位置,使序列仍保持非递减有序。 要求定义一个函数insert(),将整数num插入在数组a的适当位置上,函数原型如下: void …

面向工业的复合自动机器学习

一、工业数据收集与处理 在面向工业的复合自动机器学习中,数据的收集和处理是至关重要的第一步。工业数据通常具有大规模、高维度和非线性的特点,需要运用先进的数据处理技术进行有效的管理和分析。这包括数据清洗、数据预处理、数据增强等一系列操作&a…

【Python】使用pyinstaller打包为Windows平台的xxx.exe方法步骤

pyinstaller 是一个用于将 Python 代码打包成独立可执行文件的工具,它可以将 Python 代码打包成 Windows、Linux、Mac 等平台的可执行文件,方便用户在不同环境中运行。 pyinstaller用法: 1.安装pyinstaller库,这里以PyCharm环境为…