CentOS7默认只安装了python2的版本,需要自己手动安装python3,方法如下:
一、升级openssl到1.1以上
# 1.安装对应的依赖库
sudo yum install -y zlib yum install zlib-devel openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++
# 2. 下载openssl安装文件
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz --no-check-certificate
# 3. 解压安装openssl,并进入openssl的目录
tar -zxvf openssl-1.1.1k.tar.gz
cd openssl-1.1.1.k
./config --prefix=/usr/local/openssl shared zlib
sudo make && make install
# 4. 备份当前openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
# 5. 配置使用新版本
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
# 6. 更新动态链接库数据并重新加载
echo /usr/local/openssl/lib >> /etc/ld.so.conf
ldconfig -v
# 7. 查看是否升级成功
openssl version
# 8. 如果缺少libssl.s0.1.1
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
二、安装Python3.10
1、安装依赖包
sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gdbm-devel db4-devel libpcap-devel xz-devel make gcc gcc-c++
注意事项:如果升级了openssl ,需要解压源码包后修改vim /tmp/Python-3.10.8/Modules/Setup 文件,在文件末尾追加如下内容:
SSL=/usr/local/openssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
2、下载python3源码包,并解压编译
#下载源码包wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz #此处可更换为自己想要的包名即可# 进入源码目录
cd Python-3.10.11
tar -zvxf Python-3.10.11.tgz
cd Python-3.10.11
#指定安装目录
sudo ./configure --prefix=/usr/local/python3 --with-ssl=/usr/local/openssl
#编译安装
sudo make && sudo make install && sudo make clean
3、设置环境变量
#软链接
sudo ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip3
#查看安装的python版本
python3 --version
pip3 list
4、如果yum无法正常使用,可能是3跟2冲突导致,修改如下文件即可
sudo vim /usr/bin/yum
sudo vim /usr/libexec/urlgrabber-ext-down
把文件里面的#!/usr/bin/python 也修改为#! /usr/bin/python2