Python2.7升级至Python3.7
我使用的是国外服务器,访问外网没有任何问题
系统环境:
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
1. 查看当前Python的版本
执行如下命令,可以看到服务器上的Python版本为2.7.5
[root@racknerd-619bfd ~]# python --version
Python 2.7.5
2. 升级前准备
2.1 安装编译环境
yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel libffi-devel -y
2.2 下载Python官网Python3.7源码包
# 进入一个目录,temp
cd /temp
# 下载Python3.7包
# https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
2.3 解压配置
# 解压python源码包
tar Jxvf Python-3.7.0.tar.xz
#创建目录
mkdir -p /usr/local/python3
#配置(指定安装目录)
cd Python-3.7.0
# --enable-optimizations
# 这个选项启用了编译时的优化,使得 Python 在运行时性能更好。这通常会启用额外的编译选项,例如使用 Profile Guided Optimization (PGO) 和 Link Time Optimization (LTO) 来进一步优化 Python 解释器的性能。启用此选项后,编译时间会更长,但最终生成的 Python 二进制文件性能更高。
# 实测执行时间很长 10-15min
./configure --prefix=/usr/local/python3 --enable-optimizations
2.4 编译安装
make && make install
3.更换系统默认Python版本
3.1 备份旧版本Python
mv /usr/bin/python /usr/bin/python.bak
3.2 创建新版本Python3.7 软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python
3.3 查看Python版本
# 查看版本是否升级到3.7.0
python -v
回显如下,证明python升级成功
[root@racknerd-619bfd bin]# python --version
Python 3.7.0
4. 修改yum功能
因为yum的功能依赖Pyhon2,现在更改默认Python版本后会导致yum无法正常工作,所以进行以下修复
vim /usr/bin/yum
将/usr/bin/python改为/usr/bin/python2.7
将/usr/bin/python改为/usr/bin/python2.7
vim /usr/bin/yum-config-manager
将/usr/bin/python改为/usr/bin/python2.7
vim /usr/libexec/urlgrabber-ext-down
再重新执行yum命令,查看是否正常!
评论区