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

news2024/9/25 18:29:31

前言

虽然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.coloradmin.cn/o/2164442.html

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

相关文章

网络原理之IP协议(网络层)

目录 前言 什么是IP协议? IP协议的协议头格式 16位总长度(字节数) 16位标识、3位标志位和13位片偏移 8位生存时间 IP地址管理 1.动态分配IP 2.NAT机制(网络地址转换) NAT机制是如何工作的 NAT机制的优缺点…

监控易监测对象及指标之:全面监控Oracle ODBC数据库

在数字化时代,数据库作为存储和管理企业核心数据的基石,其稳定性和性能直接关系到业务的连续性和效率。Oracle数据库以其强大的功能和稳定性,广泛应用于各行各业。为了确保Oracle数据库的稳定运行和高效性能,对其进行全面监控显得…

阴影的基本原理

1、现实中阴影的产生规则 如图所示,现实中的阴影产生规则是,在不考虑光线反射的前提下,当一个光源发射的一条光线遇到一个不透明物体A时,这条光线就不能够再继续照亮其他物体了(物体B的一部分)&#xff0c…

ChatGPT 向更多用户推出高级语音模式:支持 50 种语言;字节发布两款新视频生成大模型丨 RTE 开发者日报

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

AutosarMCAL开发——基于EB MCU驱动

这里写目录标题 1.MCU模块的作用2.EB配置以及接口应用3.总结 1.MCU模块的作用 MCU模块主要分为三部分: McuGeneralConfiguration MCU通用配置(一般保持默认)McuHardwareResourceAllocationConf 硬件资源分配管理器(用于连接不同…

TEDxDUTH 使用 NocoBase 实现革新

作者:TEDxDUTH TEDxDUTH 是由德莫克里特大学的志愿者们组成的一个充满活力的团队。作为 TEDx 全球社区的一员,我们的使命简单而有力:传播能够激励和引发改变的思想。我们通过精心策划一系列活动,成功汇聚了众多思想家、创新家以及…

Module did not self-register: ‘drivelist.node‘报错解决

报错如下: node_modules/bindings/bindings.js:121throw e;^Error: Module did not self-register: xxxx/node_modules/drivelist/build/Release/drivelist.node.at process.func [as dlopen] (electron/js2c/asar.js:140:31)at Object.Module._extensions..node (…

探索 Python 中的 AI 魔法:markdownify 库的奥秘

文章目录 探索 Python 中的 AI 魔法:markdownify 库的奥秘背景:为何选择 markdownify?库简介:markdownify 是什么?安装指南:如何安装 markdownify?函数用法:markdownify 的五个简单函…

【Qwen2-VL】通义多模态新作速读

Qwen2-VL https://github.com/QwenLM/Qwen2-VL 结构: 整体:6.75 亿个参数的 Vision Transformer (ViT) (Dosovitskiy et al., 2021) Qwen2 预处理阶段: 朴素动态分辨率支持&…

工程车辆目标检测、工程车检测算法、工程车辆类型检测算法

工程车检测算法主要用于智能交通系统、建筑工地管理、矿山开采、物流运输等领域,通过图像识别技术来检测和识别工程车,以提高安全管理、交通流量管理和资源调度的效率。以下是关于工程车检测算法的技术实现、应用场景及优势的详细介绍。 一、技术实现 工…

VRP-SAM

不建议复现

uni-app - - - - - 小程序获取宿主语言

const systemInfo uni.getSystemInfoSync(); console.log(systemInfo);uni.showModal({title: 宿主语言,content: systemInfo.hostLanguage })官网地址:【uni-app getSystemInfoSync】

西圣Mike Pro无线麦克风强势上线!百元级实力口碑与销量双冠王!

随着音频技术的不断革新与飞跃,西圣XISEM再次以卓越的创新驱动力推出全新力作,近日,西圣品牌震撼发布全新专业无线麦克风——西圣Mike Pro。用行业领先的硬件配置,百元价格打造千元专业级麦克风专业体验,音质远超同价位…

1分钟学会BCT环境搭建和网络配置 (24年9月25日更新)

又开始弄AirPlay了,在之前基础上更新下如何配置BCT环境和网络 如何配置apple 路由器在之前的文章有教,在这里就不陈述了 传送门:【BCT认证】Bonjour Conformance Test教程 1、apple路由器怎么接? 2、命令怎么输入? IPv4 sudo ./BonjourConformanceTest -I en4 -L -DD -…

拆解一个有问题的索爱GK6蓝牙耳机,蓝牙连接中的一些软硬件问题

由来 经常带入耳式蓝牙,倒是耳朵有时候难受,无意间看见网上的夹耳式耳机,想要尝试一下。但毕竟好点儿的太贵,主要想了解内部结构,所以淘到两个电子垃圾 拆解充电仓 这个只能暴力一点儿,需要拆坏一个卡扣…

记某地级市护网的攻防演练行动

0x1 前言 哈喽,师傅们! 这次给师傅们分享的是上上个星期的地级市护网的攻防演练的两个案例,涉及到的知识点可能比较偏,下面我也会提前给师傅们拓展下改漏洞相关的知识点内容。护网攻防演练中,涉及到的很多敏感内容这…

古代经典名方目录数据库-支持经典名方检索!

"古代经典名方目录"是指一系列历史上流传下来的,被认为具有一定疗效的中药方剂的汇总。这些方剂多来源于历代医学典籍,经过长期临床实践的检验,部分已被收录于官方的目录之中,以便于现代医疗实践中的参考和应用。 目前…

安科瑞光伏发电并网柜防孤岛保护装置---微机保护测控装置

安科瑞戴婷 Acrel-Fanny 安科瑞光伏发电并网柜防孤岛保护装置微机保护测控装置(以下简称装置)集保护、控制、测量、通讯和监视功能于一体,资源丰富、配置完善、维护方便、性能稳定,适用于 35kV 及以下电压等级电力系统的保护和测…

投资气膜场馆:开启未来体育发展的新纪元—轻空间

随着对体育设施建设的重视,气膜场馆作为一种创新的体育设施,正日益成为投资的热门选择。气膜场馆凭借其独特的优势和多重好处,不仅能提升体育场馆的功能性和经济性,更为地方经济发展注入了新的活力。 成本效益显著 气膜场馆具有快…

闲盒支持的组网方式和注意事项

1. 直连光猫拨号​ 通过光猫拨号,设备直连光猫的设备,需要对光猫开启UPNP并关闭DMZ 如果只接一个盒子,建议直接针对盒子IP开dmz。 2. 直连路由器​ 通过路由器拨号,设备直连路由器的设备,需要对路由器开启UPNP并关闭…