CentOS7.9安装Python 3.10.11并包含OpenSSL1.1.1t

1. 安装编译 Python 所需的依赖包

yum -y install gcc make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel wget


2. 安装 OpenSSL 1.1.1 或更新版本
自定义路径安装的 OpenSSL 1.1.1 不会影响系统原有的 OpenSSL 1.0.2,二者可共存
# 下载 OpenSSL 1.1.1t 源码包

wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz

如果官网下载麻烦可直接用网盘下载:

链接: https://pan.baidu.com/s/1YFs5UC6nUh5ktCCk9Ln-Mg?pwd=nmnn
提取码: nmnn 

# 解压源码包

tar -zxvf openssl-1.1.1t.tar.gz

# 进入解压后的目录

cd openssl-1.1.1t

# 配置编译选项

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib

# 编译并安装,make -j$(nproc) 利用处理器多核编译加快编译速度。

make -j$(nproc)
make install

# 更新系统库路径

echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig

3. 创建 Python 安装目录(路径根据实际情况修改)

mkdir -p /data/py/Python3


4. 下载 Python 3.10.11 源码包

wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz


5. 解压 Python 源码包

tar -zxvf Python-3.10.11.tgz
cd Python-3.10.11


6. 配置 Python 编译选项

./configure --prefix=/data/py/Python3 --with-openssl=/usr/local/openssl

7. 编译并安装 Python

make -j$(nproc)
make install


8. 设置环境变量

echo 'export PATH=/data/py/Python3/bin:$PATH' >> /etc/profile
source /etc/profile##如果不想取代系统原有的python3版本,可以通过添加软连接方式,与系统自带python3共存:
cd /usr/bin
ln -s /data/py/Python3/bin/python3.10 python310
ln -s /data/py/Python3/bin/pip3.10 pip310


9. 验证 Python 安装

python3 --version#如果是软连接共存方式,则执行如下代码
python310  --version


10. 验证 SSL 模块是否成功安装

python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"#如果是软连接共存方式,则执行如下代码
python310  -c "import ssl; print(ssl.OPENSSL_VERSION)"


11. 配置 pip 源(以阿里云源为例)

mkdir -p ~/.pip
cat << EOF > ~/.pip/pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/[install]
trusted-host = mirrors.aliyun.com
EOF


12. 更新 pip 到最新版本

pip3 install --upgrade pip#如果是软连接共存方式,则执行如下代码
pip310 install --upgrade pip

13. 测试安装第三方库

pip3 install requests
python3 -c "import requests; print(requests.__version__)"#如果是软连接共存方式,则执行如下代码
pip310 install requests
python310 -c "import requests; print(requests.__version__)"

按照以上步骤操作,你就可以在 CentOS 7.9 系统上成功安装 Python 3.10.11 并包含 OpenSSL 支持,同时配置好 pip 源以便后续使用。

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

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

相关文章

qt事件过滤与传递机制

当点击 QLabel 时&#xff0c;正常情况下并不会直接触发 MyWidget 的 mousePressEvent 函数&#xff0c;原因在于事件的传递机制和事件过滤器的存在。下面详细分析这个过程&#xff1a; 事件传递机制 在 Qt 里&#xff0c;事件的传递是从子控件往父控件冒泡的。不过&#xff…

ubuntu 安装ollama后,如何让外网访问?

官网下载linux版本&#xff1a;https://ollama.com/download/linux 1、一键安装和运行 curl -fsSL https://ollama.com/install.sh | sh 2、下载和启动deepseek-r1大模型 ollama run deepseek-r1 这种方式的ollama是systemd形式的服务&#xff0c;会随即启动。默认开启了 …

kotlin与MVVM结合使用总结(三)

1. MVVM 架构详细介绍及源码层面理解 整体架构 MVVM&#xff08;Model - View - ViewModel&#xff09;架构是为了解决视图和数据模型之间的耦合问题而设计的。它通过引入 ViewModel 作为中间层&#xff0c;实现了视图和数据的分离&#xff0c;提高了代码的可维护性和可测试性…

A系统使用iframe嵌套B系统时登录跨域问题!

我这边两个项目都是独立的&#xff0c;问题是做了跨域配置之后点击登录接口调用成功但是页面没有跳转进去 显示以下报错 这个错误明确指出了问题的核心原因&#xff1a;由于跨站点Cookie设置未正确声明SameSiteNone&#xff0c;导致浏览器拦截了Cookie。这是现代浏览器&#x…

消息唯一ID算法参考

VUE // src/utils/idGenerator.js/*** 雪花算法风格的 ID 生成器**//*** 前缀 w代表web端,m代表手机端**/ const DEFAULT_PREFIX = w; const DEFAULT_TOTAL_LENGTH = 16; const CHARS

《WebGIS之Vue零基础教程》(5)计算属性与侦听器

1 计算属性 1) 什么是计算属性 :::info 计算属性就是基于现有属性计算后的属性 ::: 2) 计算属性的作用 计算属性用于对原始数据的再次加工 3) 案例 :::warning **需求** 实现如下效果 ::: 使用表达式实现 html Document 请输入一个字符串: 反转后的字符串: {{msg.split(…

洞悉 NGINX ngx_http_access_module基于 IP 的访问控制实战指南

一、模块概述 ngx_http_access_module 是 NGINX 核心模块之一&#xff0c;用于基于客户端 IP 地址或 UNIX 域套接字限制访问。它通过简单的 allow/deny 规则&#xff0c;对请求进行最先匹配原则的过滤。与基于密码&#xff08;auth_basic&#xff09;、子请求&#xff08;auth…

数据中台-数据质量管理系统:从架构到实战

一、数据质量管理系统核心优势解析​ ​ (一)可视化驱动的敏捷数据治理​ 在数据治理的复杂流程中,Kettle 的 Spoon 图形化界面堪称一把利器,为数据工程师们带来了前所未有的便捷体验。想象一下,你不再需要花费大量时间和精力去编写冗长且复杂的 SQL 脚本,只需通过简单…

数据分析之 商品价格分层之添加价格带

在分析货品数据的时候&#xff0c;我们会对商品的价格进行分层汇总&#xff0c;也叫价格带&#xff0c;​​ 一、价格带的定义​​ ​​价格带&#xff08;Price Band&#xff09;​​&#xff1a;将商品按价格区间划分&#xff08;如0-50元、50-100元、100-200元等&#xff…

Maven 依赖范围(Scope)详解

Maven 依赖范围&#xff08;Scope&#xff09;详解 Maven 是一个强大的项目管理工具&#xff0c;广泛用于 Java 开发中构建、管理和部署应用程序。在使用 Maven 构建项目时&#xff0c;我们经常需要引入各种第三方库或框架作为项目的依赖项。通过在 pom.xml 文件中的 <depe…

vue3实现v-directive;vue3实现v-指令;v-directive不触发

文章目录 场景&#xff1a;问题&#xff1a;原因&#xff1a;‌ 场景&#xff1a; 列表的操作列有按钮&#xff0c;通过v-directive指令控制按钮显隐&#xff1b;首次触发了v-directive指令&#xff0c;控制按钮显隐正常&#xff1b;但是再次点击条件查询后&#xff0c;列表数…

数据结构【树和二叉树】

树和二叉树 前言1.树1.1树的概念和结构1.2树的相关术语1.3树的表示方法1.4 树形结构实际运用场景 2.二叉树2.1二叉树的概念和结构2.2二叉树具备以下特点&#xff1a;2.3二叉树分类 3.满二叉树4.完全二叉树5.二叉树性质6.附&#xff1a;树和二叉树图示 前言 欢迎莅临姜行运主页…

css面板视觉高度

css面板视觉高度 touch拖拽 在手机端有时候会存在实现touch上拉或者下拉的样式操作 此功能实现可以参考&#xff1a; https://blog.csdn.net/u012953777/article/details/147465162?spm1011.2415.3001.5331 面板视觉高度 前提需求&#xff1a; 1、展示端分为两部分&…

【Linux系统】详解Linux权限

文章目录 前言一、学习Linux权限的铺垫知识1.Linux的文件分类2.Linux的用户2.1 Linux下用户分类2.2 创建普通用户2.3 切换用户2.4 sudo&#xff08;提升权限的指令&#xff09; 二、Linux权限的概念以及修改方法1.权限的概念2.文件访问权限 和 访问者身份的相关修改&#xff08…

路由器的基础配置全解析:静态动态路由 + 华为 ENSP 命令大全

&#x1f680; 路由器的基础配置全解析&#xff1a;静态&动态路由 华为 ENSP 命令大全 &#x1f310; 路由器的基本概念&#x1f4cd; 静态路由配置&#x1f4e1; 动态路由协议&#xff1a;RIP、OSPF、BGP&#x1f5a5; 华为 ENSP 路由器命令大全&#x1f539; 路由器基本…

详细图解 Path-SAM2: Transfer SAM2 for digital pathology semantic segmentation

✨ 背景动机 数字病理中的语义分割&#xff08;semantic segmentation&#xff09;是非常关键的&#xff0c;比如肿瘤检测、组织分类等。SAM&#xff08;Segment Anything Model&#xff09;推动了通用分割的发展&#xff0c;但在病理图像上表现一般。 病理图像&#xff08;Pa…

初识Redis · 哨兵机制

目录 前言&#xff1a; 引入哨兵 模拟哨兵机制 配置docker环境 基于docker环境搭建哨兵环境 对比三种配置文件 编排主从节点和sentinel 主从节点 sentinel 模拟哨兵 前言&#xff1a; 在前文我们介绍了Redis的主从复制有一个最大的缺点就是&#xff0c;主节点挂了之…

HTTP header Cookie 和 Set-Cookie

RFC 6265: HTTP State Management Mechanismhttps://www.rfc-editor.org/rfc/rfc6265 Set-Cookie 响应头 服务器使用 Set-Cookie 响应头向客户端&#xff08;通常是浏览器&#xff09;发送 Cookie。 基本格式&#xff1a; Set-Cookie: <cookie名称><cookie值>;…

【Unity完整游戏开发案例】从0做一个太空大战游戏

1.实现飞机移动控制 // 这个脚本实现控制飞机前后移动&#xff0c;方向由鼠标控制 //1.WS控制前后移动2.鼠标控制上下左右旋转3.AD控制倾斜 using System.Collections; using System.Collections.Generic; using UnityEngine;public class PlayerController : MonoBehav…

【C++】C++11新特性(一)

文章目录 列表初始化initializer_list左值引用和右值引用 列表初始化 在 C98 中可以使用{}对数组或者结构体元素进行统一的列表初始值设定 struct Point {int _x;int _y; }; int main() {int array1[] { 1, 2, 3, 4, 5 };int array2[5] { 0 };Point p { 1, 2 };return 0; …