1.查看是否已经安装Python
CentOS 7.6 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。
使用 python -V 命令查看一下是否安装Python
[root@localhost ~]# python -V
Python 2.7.5
然后使用命令 which python 查看一下Python可执行文件的位置:
[root@localhost ~]# which python
/usr/bin/python
进入到 /usr/bin/ 目录下,切换到该目录下执行 ll python* 命令查看
[root@localhost ~]# cd /usr/bin/
[root@localhost bin]# ll python*
lrwxrwxrwx. 1 root root 7 Dec 7 19:07 python -> python2
lrwxrwxrwx. 1 root root 9 Dec 7 19:07 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Oct 31 07:46 python2.7
[root@localhost bin]#
python 指向的是python2.7
2.Python 3 依赖包
因为我们要安装python3版本,所以python要指向python3才行,目前还没有安装python3,先备份,备份之前先安装相关包。
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
用于下载编译python3,不能忽略相关包,然后备份:
mv /usr/bin/python /usr/bin/python.bak.2018.12.18
3.安装 Python 中的 Pip
默认的,centos7也没有安装pip,因此我们需要安装 pip:
yum -y install epel-release //运行这个命令添加epel扩展源
yum -y install python-pip //安装 pip
4. 用pip装wget
pip install wget
5. 用 wget 下载python 3.7 的源码包,并进行相关的编译、安装
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz //下载
xz -d Python-3.7.0.tar.xz
tar -xf Python-3.7.0.tar //解压
./configure prefix=/usr/local/python3
make && make install // 进入解压后的目录,依次执行下面命令进行手动编译
如果最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录
5. 添加软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python //添加python3的软链接
查看是否添加成功:
[root@localhost bin]# ll python*
lrwxrwxrwx. 1 root root 32 Dec 18 07:38 python -> /usr/local/python3/bin/python3.7
lrwxrwxrwx. 1 root root 9 Dec 18 2018 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Oct 31 07:46 python2.7
lrwxrwxrwx. 1 root root 7 Dec 18 2018 python.bak.2018.12.18 -> python2
[root@localhost bin]# python -V //测试是否安装成功了
Python 3.7.0
6. 更改yum配置
因为其要用到python2才能执行,否则会导致yum不能正常使用:
vi /usr/bin/yum
把#! /usr/bin/python 修改为#! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把#! /usr/bin/python 修改为#! /usr/bin/python2
7. 更改firewall-cmd 配置
由于 Centos 7 自带的 firewall-cmd 会用到python2才能执行,否则会导致firewall-cmd 不能正常使用,因此我们需要更改下 firewall-cmd 的配置:
vi /usr/bin/firewall-cmd
把#! /usr/bin/python修改为#! /usr/bin/python2.7
vi /usr/sbin/firewalld
把#! /usr/bin/python修改为#! /usr/bin/python2.7