部署linux系统默认2.7.x环境,但是有些项目部署需3.x以上,由于低版本也存在高风险漏洞,
查看openSSL版本信息
高于1.1.1 直接安装即可
[root@localhost ~]# openssl version
OpenSSL 1.1.1f 31 Mar 2020
[root@localhost ~]#
直接安装python3.13.0
yum -y install gcc zlib zlib-devel libffi libffi-devel
#可以解决后期出现的方向键、删除键乱码问题,这里提前避免。
yum -y install readline-devel
#安装openssl11,后期的pip3安装网络相关模块需要用到ssl模块。
yum -y install openssl-devel
#进入cd /usr/local
cd /usr/local
#下载最新的软件安装包
wget https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz
#解压缩安装包
tar -xzf Python-3.13.0.tgz
#安装源码编译需要的编译环境
yum -y install gcc zlib zlib-devel libffi libffi-devel
yum -y install readline-devel
yum -y install openssl-devel
#进入刚解压缩的目录
cd /usr/local/Python-3.13.0
#指定python3的安装目录为 /usr/local/Python-3.13.0 并使用ssl模块
./configure --prefix=/usr/local/Python-3.13.0 --with-ssl
#就是源码编译并安装了,时间会持续几分钟。
make
make install
查看版本
python3 --version
FAQ
1、有的服务器未替换新python3路径显示新版本
多个 Python 版本的安装: 你的系统可能同时安装了多个 Python 3 版本。比如,你安装了 Python 3.13,但系统中还有 Python 3.7。虽然 /usr/bin/python3 符号链接指向 Python 3.7,但由于路径中有其他版本的 Python(如 /usr/local/Python-3.13.0/bin/python3.13),系统可能默认执行了其他版本。
PATH 环境变量的优先级: 当你运行 python3 命令时,系统会按照 PATH 环境变量中的路径顺序查找 python3 命令。如果 /usr/local/Python-3.13.0/bin/ 位于 /usr/bin/ 之前,系统会优先使用 /usr/local/Python-3.13.0/bin/python3.13,即使 /usr/bin/python3 指向的是 python3.7。
删除历史链接替换新链接
ln -sf /usr/local/Python-3.13.0/bin/python3.13 /usr/bin/python3
新软连接
ln -s /usr/local/Python-3.13.0/bin/python3.13 /usr/bin/python3
2、yum无法执行
CentOS 7 中的 Python 版本
在 CentOS 7 中,yum 默认使用 Python 2 来运行。你可以通过以下命令确认 yum 使用的 Python 版本
服务器没有python2环境的先安装python2
有python2环境的不要删除python2环境
3、pip3 -V notfound
[root@evuaszwptd67i0la /]# pip3 -V
-bash: pip3: command not found
[root@evuaszwptd67i0la /]# sudo yum install python3-pip
4、先执行一下记录这几个内容
[root@evuaszwptd67i0la /]# pip3 -V
-bash: pip3: command not found
[root@evuaszwptd67i0la /]# sudo yum install python3-pip
[root@evuaszwptd67i0la /]# pip3 -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
[root@evuaszwptd67i0la /]# which python2
/usr/bin/python2
[root@evuaszwptd67i0la /]# which python3
/usr/bin/python3
[root@evuaszwptd67i0la /]#
[root@evuaszwptd67i0la /]# python --version
Python 2.7.5
[root@evuaszwptd67i0la /]# python3 --version
Python 3.6.8
[root@evuaszwptd67i0la /]# ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9 Nov 21 11:17 /usr/bin/python3 -> python3.6
[root@evuaszwptd67i0la /]# ls -l /usr/bin/python
lrwxrwxrwx 1 root root 7 Nov 13 17:30 /usr/bin/python -> python2
安装Openssl3.4.0
下载地址:Downloads | Library
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
./config --prefix=/usr/local/openssl-3.4.0
make && make install
echo /usr/local/openssl-3.4.0/lib64 >> /etc/ld.so.conf
ln -s /usr/local/openssl-3.4.0/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl-3.4.0/include/openssl /usr/include/openssl
ln -s /usr/local/openssl-3.4.0/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/openssl-3.4.0/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
ldconfig -v
确认所有依赖项安装完整
sudo yum groupinstall "Development Tools"
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
./configure --prefix=/usr/local/Python-3.13.0 \
--with-openssl=/opt/openssl \
--enable-optimizations
--prefix=/usr/local/Python-3.13.0 指python安装路径。
--with-openssl=/opt/openssl 确保 Python 使用正确的 OpenSSL安装路径。
报错的话则执行如下内容
make clean
LDFLAGS="-L/opt/openssl/lib" CPPFLAGS="-I/opt/openssl/include" ./configure --with-openssl=/opt/openssl
make
sudo make install
enjoy