【环境踩坑系列】centos7安装python3.10.X

前言

虽然centOS8已经发布了相当一段时间了,但是基于稳定性、成熟的社区等原因,大家在选择centOS作为服务器操作系统的时候仍然会选择centOS7作为首选。但是centOS7自带的是python2.7.5,当前大量的python程序要用到的又是python3,很多热门的python库甚至就没有支持python2的版本。所以在centOS7上装python3是很常用到的,尤其是装python3.10.X版本。本文选择的python3.10.6.

目录

1.下载安装

1.1.安装前置依赖

1.2.安装包下载

1.3.解压源码包 

1.4.进入到解压目录,开始配置 

1.5.编译源码

1.6.创建软连接

1.7.修改默认依赖版本

1.8. 创建pip3的软连接

2.报错处理

2.1.No module named '_ssl'

2.2.error while loading shared libraries: libssl.so.1.1


1.下载安装

1.1.安装前置依赖

这里我们直接通过yum安装依赖,输入下列命令进行安装。

yum install zlib-devel bzip2-devel opssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel 

1.2.安装包下载

下载地址:

Index of /ftp/python/3.10.6/

可以手动下载传到服务器上再解压,也可以通过wget下载安装包,自行选择。

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

没有wget的需要yum下载

yum -y install wget

1.3.解压源码包 

tar -xvf Python-3.10.6.tgz

1.4.进入到解压目录,开始配置 

./configure

1.5.编译源码

make & make install

1.6.创建软连接

先删除默认的python安装程序。

rm -f /usr/bin/python

将最新的python3.10.6创建软链接。

ln -s 刚刚自己解压出来的安装目录 /usr/bin/python

1.7.修改默认依赖版本

由于系统中很多工具和命令是依赖于原生系统自带的python2的,所以建立软连接将系统的python版本升级为python3后,要手动将这些重要的命令指回原来的python2路径,让他们继续使用python,避免出现因为python版本问题造成的系统工具和指令不可用的问题。

修改yum依赖默认的python版本

vi /usr/libexec/urlgrabber-ext-down

将首行的python 改为 python2 

vi /usr/bin/yum

也同样的将首行的python 改为 python2

修改防火墙的python 版本  

vi /usr/bin/firewall-cmd

将首行的python 改为 python2 

vi /usr/sbin/firewalld 

修改完这几个文件之后python的安装已经完成,yum依赖和防火墙的python也都修改成为最新版本的python了。

1.8. 创建pip3的软连接

给pip一个软连接

ln -s刚刚自己解压出来的安装目录/bin/pip3.10 /usr/bin/pip3

2.报错处理

安装好python3.10.X版本后,在使用过程中可能会遇见一些错误,接下来说一下这些错误怎么处理。

2.1.No module named '_ssl'

 _ssl 模块没有正确加载或编译。这个模块是 Python 标准库的一部分,用于处理 SSL/TLS 连接。

官方其实记录了这个问题,以下是官方文档:

PEP 644 – Require OpenSSL 1.1.1 or newer | peps.python.org

总结起来就是python3.10以后的版本OPENSSL不再是/usr/local/ssl 的默认路径,变成了/path/to/openssl/directory,而使用openssl3以上的版本的lib目录名也变成了lib64,编辑vim /你自己的Python编译源文件路径/Modules/Setup。

上图中的操作都完成之后,删掉原来编译完成后的python文件目录,重新执行编译命令:

./configure

make & make install

编译完成后用python命令进入编译器界面:

import ssl

如果没报错,就说明问题解决了。

2.2.error while loading shared libraries: libssl.so.1.1

这是因为缺少openssl库造成的

wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz --no-check-certificate
tar -zxf openssl-1.1.1n.tar.gz
cd openssl-1.1.1n

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel

yum install -y perl-CPAN
perl -MCPAN -e shell

./config --prefix=/usr/local/openssl
make -j 2
make install
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

vim /etc/ld.so.conf

 在文件末尾添加一行代码:

/usr/local/openssl/lib

使之生效:

ldconfig -v

验证版本:

openssl version

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

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

相关文章

day-60 字符串中最多数目的子序列

思路 由题目可以得出,当字符串开头插入pattern[0]或在字符串结尾插入pattern[1]这两种情况中的一种所得到的子序列数目一定是最多的 解题过程 我们可以遍历字符串,统计pattern[0]的个数,每当遇到一个pattern[1]时,序列数就会加上…

蓝桥杯15届C/C++B组省赛题目

问题描述 小蓝组织了一场算法交流会议,总共有 5050 人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 77 个人,这 77 人彼此之间没有进行握手 (但这 77 人与…

ProgrammerAI—AI辅助编程学习指南

前言 随着AIGC(AI生成内容)技术的快速发展,诸如ChatGPT、MidJourney和Claude等大语言模型相继涌现,AI辅助编程工具正逐步改变程序员的工作方式。这些工具不仅可以加速代码编写、调试和优化过程,还能帮助解决复杂的编程…

通义千问重磅开源Qwen2.5,性能超越Llama

简介: 击败Meta,阿里Qwen2.5再登全球开源大模型王座 9月19日云栖大会,阿里云CTO周靖人发布通义千问新一代开源模型Qwen2.5,旗舰模型Qwen2.5-72B性能超越Llama405B, 再登全球开源大模型王座。Qwen2.5全系列涵盖多个尺…

Tesla T4 P2P测试

Tesla T4 P2P测试 一.测试环境二.测试步骤1.获取设备信息2.查看PCIE拓扑结构3.选择9B、9E这二张4.查看逻辑设备ID5.设置环境变量(需要用逻辑设备ID,通过UUID跟smi看到的物理ID关联)6.不同地址的原子操作2.P2P与非P2P的性能差异3.GPU带宽测试 Tesla T4 P2P测试 通过物理ID找到逻…

多个ECU测试方案-IP地址相同-DoIP刷新-环境测试耐久测试

情况1:只有一个ECU进行测试 - 接口模块只需要使用一个车载以太网转换器; 情况2:多ECU同时测试,但ECU IP地址不一样,上位机多个网口 - 上位机测试软件,需要通过PC的不同网卡,访问各个ECU&#…

微信小程序开发第九课

一 后端上线 1.1 购买云服务器 1.2 安装python3.9 # 阿里云的centos上有python环境- python2.7.5 pip- python3.6.8 pip3-咱们项目开发,在3.9上开发的,需要使用3.9的解释器来运行# 可以使用yum 安装,不能指定版本(yum i…

CorePress Pro 网站加载慢 WordPress

一般来说是你用了「CorePress天气模块」 解决方案:这个插件从你右侧边栏里删掉就可以了(上方的图中已经是删掉后的效果了) 寻找加载时间长的原因: 谷歌浏览器F12->网络->打开录制->ShiftF5 得出结论:和风天气…

Android 车载应用开发指南 - CarService 详解(下)

车载应用正在改变人们的出行体验。从导航到娱乐、从安全到信息服务,车载应用的开发已成为汽车智能化发展的重要组成部分。而对于开发者来说,如何将自己的应用程序无缝集成到车载系统中,利用汽车的硬件和服务能力,是一个极具挑战性…

计算机网络:物理层 --- 基本概念、编码与调制

目录 一. 物理层的基本概念 二. 数据通信系统的模型 三. 编码 3.1 基本概念 3.2 不归零制编码 3.3 归零制编码 3.4 曼切斯特编码 3.5 差分曼切斯特编码 ​编辑 四. 调制 4.1 调幅 4.2 调频 4.3 调相 4.4 混合调制 今天我们讲的是物理…

【JavaEE】——线程的安全问题和解决方式

阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:问题引入 二:问题深入 1:举例说明 2:图解双线程计算…

机器学习04-逻辑回归(python)-02原理与损失函数

​​​​​​​ 1. 逻辑回归概念 逻辑回归(Logistic Regression) 是一种 分类模型,主要用于解决 二分类问题(即分成两类,如是否通过、是否患病等)。逻辑回归的目标是根据输入的特征预测一个 概率&#xff0…

AI大模型项目实战v0.2: 结合个人知识库

前言 在AI大模型项目实战v0.1版本中,我们实现了一个最简单的基于纯LLM的问答机器人Tbot。 今天升级到v0.2版本,结合个人知识库。 本系列每个版本,都将提供完整的代码文档,获取方法见文末。 下面开启我们的v0.2版本之旅。 v0.2 Tb…

Icarus翼星求生教你使用服务器开服

1、购买后登录服务器(百度莱卡云游戏面板) 登录面板的信息在绿色的登陆面板按键下方,不是你的莱卡云账号 进入控制面板后会出现正在安装的界面,大约10分钟左右就能安装完成 2、创建端口 点击目录上的网络,再次页面下点…

中伟视界:AI算法如何精准识别井下与传送带上堆料,提升矿山安全生产效率,减少事故风险

传送带堆料分为两种情况,一种是传送带的井下堆料检测AI算法,一种是传送带上面的堆料检测AI算法,传送带井下堆料检测AI算法是在带式输送机的漏煤下方井下安装摄像仪,通过视频分析检测井下堆煤情况,当洒煤堆积到一定程度…

【Git入门】使用 Git 进行项目管理:Word Count 程序开发与托管

在软件开发过程中,版本控制工具是不可或缺的。Git 作为一款强大的分布式版本控制工具,为开发者提供了高效的代码管理和协作方式。本博客将介绍如何下载安装 Git 版本管理工具,并使用 Git 和 GitHub 平台进行一个名为 Word Count 的项目开发与…

二分

LeetCode34 在排序数组中查找元素的第一个和最后一个位置&#xff08;二分模板题&#xff0c;左闭右开写法&#xff09; /** lc appleetcode.cn id34 langcpp** [34] 在排序数组中查找元素的第一个和最后一个位置*/// lc codestart #include<iostream> using namespace s…

Python发送邮件教程:如何实现自动化发信?

Python发送邮件有哪些方法&#xff1f;如何利用python发送邮件&#xff1f; 无论是工作汇报、客户通知还是个人提醒&#xff0c;邮件都能快速传递信息。Python发送邮件的自动化功能就显得尤为重要。AokSend将详细介绍如何使用Python发送邮件&#xff0c;实现自动化发信&#x…

逆向推理+ChatGPT,让论文更具说服力

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 使用ChatGPT辅助“逆向推理”技巧&#xff0c;可以显著提升论文的质量和说服力。逆向推理从结论出发&#xff0c;倒推所需的证据和论点&#xff0c;确保整个论证过程逻辑严密且无漏洞。…

Spring Cloud :Hystrix实现优雅的服务容错

目录 Hystrix概述&#xff1a;第一个Hystrix程序步骤1&#xff1a;创建父工程hystrix-1步骤2&#xff1a;改造服务提供者步骤3&#xff1a;改造服务消费者为Hystrix客户端&#xff08;1&#xff09;添加Hystrix依赖&#xff08;2&#xff09;添加EnableHystrix注解&#xff08;…