当前位置: 首页 > news >正文

CentOS 7安装Python3.12

文章目录

  • 使用pyenv安装python3.12
  • 一、gitub下载pyenv
  • 二、升级GCC
  • 三.升级openssl
    • 这样python3.12.9就完成安装在CentOS上啦!


使用pyenv安装python3.12


一、gitub下载pyenv

https://github.com/pyenv/pyenv
按照README,pyenv教程安装即可

二、升级GCC

安装依赖

yum install centos-release-scl -y

手动修改库地址
/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://vault.centos.org/centos/7/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://vault.centos.org/centos/7/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

更新yum库

yum clean all yum makecache

安装并开启GCC11

yum install devtoolset-11 -y scl enable devtoolset-11 bash

三.升级openssl

Python 3.10+ 需要 OpenSSL 1.1.1+,但 CentOS 7 默认的 OpenSSL 版本是 1.0.2,需手动升级
步骤 1:从源码编译 OpenSSL 1.1.1

# 下载 OpenSSL 1.1.1
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w

# 编译安装到 /opt/openssl
./config --prefix=/opt/openssl --openssldir=/opt/openssl
make -j$(nproc)
sudo make install

# 添加动态库路径
echo '/opt/openssl/lib' | sudo tee /etc/ld.so.conf.d/openssl-1.1.1.conf
sudo ldconfig

步骤 2:验证 OpenSSL 版本

/opt/openssl/bin/openssl version
# 输出应为 OpenSSL 1.1.1w

步骤 3:设置编译环境变量
在编译 Python 时,通过环境变量指定 OpenSSL 路径:

export CPPFLAGS="-I/opt/openssl/include"
export LDFLAGS="-L/opt/openssl/lib"
export LD_LIBRARY_PATH="/opt/openssl/lib:$LD_LIBRARY_PATH"

步骤 4:安装 Python 3.12

pyenv install 3.12.9 --verbose

步骤 5:验证

[root@...] pyenv global 3.12
[root@...] python3
Python 3.12.9 (main, Apr  8 2025, 15:37:15) [GCC 11.2.1 20220127 (Red Hat 11.2.1-9)] on linux
Type "help", "copyright", "credits" or "license" for more information.

这样python3.12.9就完成安装在CentOS上啦!

相关文章:

  • InternVideo2.5:Empowering Video MLLMs with Long and Rich Context Modeling
  • Sublime Text使用教程(用Sublime Text编写C语言程序)
  • Redis如何判断哨兵模式下节点之间数据是否一致
  • UniappX动态引入在线字体图标,不兼容css时可用。
  • 《P3601 签到题》
  • 力扣hot100【链表】
  • 克魔助手(Kemob)安装与注册完整教程 - Windows/macOS双平台指南
  • IMS V 6即将破解制造业数字化转型“难题”!
  • WEB安全--内网渗透--Kerberos之AS_REQAS_REP
  • [蓝桥杯] 挖矿(CC++双语版)
  • 【RabbitMQ】队列模型
  • C++(进阶) 第11智能指针
  • HTTP的Keep-Alive是什么?TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?
  • ZW3D二次开发_普通对话框_设置对话框弹出位置
  • 基于webgis画点(未知坐标情况下)
  • FL-00002-MongoDB案例+1-数据救援工作
  • 【C++】函数直接返回bool值和返回bool变量差异
  • 使用 redis 实现消息队列
  • 【leetcode hot 100 70】爬楼梯
  • 万相2.1本地部署教程——阿里开源超强AI视频模型:物理模拟×中英双驱,定义AI生成新标杆!
  • 宇数科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入
  • 呼和浩特推进新一轮国企重组整合:杜绝一项目一公司、一业务一公司
  • 人民日报刊文:守护“技术进步须服务于人性温暖”的文明底线
  • 中非民间对话在赞比亚举行
  • “降息潮”延续!存款利率全面迈向“1时代”
  • 安徽亳州涡阳县司法局党组书记刘兴连落马