1.我们先看看现有的 python2在哪里
[root@143ef1ab6e90 usr]# whereis python
python: /usr/bin/python3.7 /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7
[root@3ef3be321b28 /]# ll /usr/bin/python*
lrwxrwxrwx 1 root root 7 Aug 4 22:04 /usr/bin/python -> python2
lrwxrwxrwx 1 root root 9 Aug 4 22:04 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7216 Jul 13 13:07 /usr/bin/python2.7
2.安装python3使用的编译安装包
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel vim lrzsz wget
注意:这里面有一个包很关键libffi-devel,因为只有3.7才会用到这个包,如果不安装这个包的话,在 make 阶段会出现如下的报错:
# ModuleNotFoundError: No module named '_ctypes'
3.安装pip,因为 CentOs 是没有 pip 的。
#运行这个命令添加epel扩展源
yum -y install epel-release
#安装pip
yum -y install python-pip
4.我们可以下载 python3.7的源码包了
wget -P /usr/local/ https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
#解压包并到源码目录
tar xvJf Python-3.7.1.tar.xz
cd Python-3.7.1
Python-3.7.1]# pwd
/usr/local/Python-3.7.1
#进入解压后的目录,依次执行下面命令进行手动编译
./configure prefix=/usr/local/python3
make && make install
Release包下载地址如下:https://www.python.org/downloads/ 如果需要最新版本可以进行下载
添加软连接
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3.7
#添加 pip3 的软链接
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3.7
#使用默认python
python -V
#使用python3.7
python3.7 -V
更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用(不管安装 python3的那个版本,都必须要做的)
vim /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vim /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2