安装环境

阿里云服务器 操作系统centos7.9

需求

安装python3.13.2

前提

使用“yum update”更新后,系统还是只支持python3.6
同时保留系统自带的python版本

借鉴文章

https://blog.csdn.net/weixin_50908696/article/details/144444217
https://blog.csdn.net/sunny05296/article/details/145860926

安装

一、下载所需的python版本,这里我下载的是python3.13.2

1、官网下载:https://www.python.org/downloads/
在这里插入图片描述
2、阿里云镜像:https://mirrors.aliyun.com/python-release/
3、在服务器上直接执行命令:wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgz

二、下载后,将其上传到服务器,然后解压编译
1、解压:tar xzf Python-3.13.2.tgz
2、解压成功后进入目录:cd Python-3.13.2
3、安装依赖
yum install -y zlib zlib-devel openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++ 
4、编译、安装
./configure --enable-optimizations
make && make altinstall #使用altinstall是因为该环境存在其他版本的python,这样可使多个版本共存
三、所遇问题

编译、安装这步一直报错

1、gcc版本太低

报错内容:

在这里插入图片描述
Python may require stdatomic.h.

安装gcc
安装阿里云yum源
yum -y install centos-release-scl
cat > /etc/yum.repos.d/CentOS-SCLo-scl.repo <<'EOF'
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/
        http://mirrors.aliyuncs.com/centos/$releasever/sclo/$basearch/sclo/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/sclo/$basearch/sclo/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
EOF
 
#cat > /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo <<'EOF'
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/
        http://mirrors.aliyuncs.com/centos/$releasever/sclo/$basearch/rh/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/sclo/$basearch/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
EOF
 
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
source /etc/profile
切换到新版本的gcc环境,检查gcc版本
scl enable devtoolset-9 bash #注:退出该环境执行:“exit”即可
gcc version #查看gcc版本
2、openssl版本太低
下载openssl

官网下载路径:https://openssl-library.org/source/,选择旧版本
在这里插入图片描述

旧版本界面,找到对应版本的下载路径
在这里插入图片描述

下载并安装
wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz #下载文件
tar -zxvf openssl-1.1.1w.tar.gz #解压
cd openssl-1.1.1w #进入目录
编译安装
./config --prefix=/usr/local/openssl  --openssldir=/usr/local/openssl/ssl
make
make install
openssl环境变量配置
vim /etc/profile
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
openssl环境变量生效
source /etc/profile
创建 openssl 软连接
whereis openssl #查看当前系统的openssl的位置
mv /usr/bin/openssl  /usr/bin/openssl.old #备份一下旧版本的二进制文件
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl #创建软链接
查看openssl版本
openssl version

说明:
1、在使用yum系统安装openssl,确实安装了个高版本的,但是后续不清楚如何在编译时使用,找不到对应的目录,故手动安装
2、手动安装时,没有使用openssl新版本,因为安装新版本时又报错,当时比较急,没去深究;换成低版本后,没出现问题

四、最后强调,编译安装python3.13.2是要在新版本的gcc环境下进行。
scl enable devtoolset-9 bash #进入新版本gcc
cd Python-3.13.2 #进入需要安装的python目录
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --enable-optimizations #指定openssl
make && make altinstall

安装好后,可以看到python3.13.2安装目录的路径或使用文件查找命令查找
建立两个命令的软链接,便于使用

ln -s /usr/local/python3/bin/python3.13 /usr/bin/python313 
ln -s /usr/local/python3/bin/pip3.13 /usr/bin/pip313
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐