linux Centos7.6 安装 Python3 并与 yum 共存

《linux Centos7.6 安装 Python3 并与 yum 共存》

查看是否已经安装Python

# python -V 
//Python 2.7.5 

查看一下Python可执行文件的位置

# which python
/usr/bin/python

进入到 /usr/bin/ 目录下,切换到该目录下执行 ll python* 命令查看

# ll /usr/bin/python*
《linux Centos7.6 安装 Python3 并与 yum 共存》

python 指向的是python2.7

安装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 openblas-devel blas-devel lapack-devel  

用于下载编译python3,不能忽略相关包,然后备份:

# mv /usr/bin/python /usr/bin/python.bak.2020.03.06
//还原:
# mv /usr/bin/python.bak.2020.03.06 /usr/bin/python 

安装 Python 中的 pip

# yum -y install epel-release
# yum -y install python-pip //安装pip 编译安装不需要此步

下载python 3.8+ 的源码包,并进行相关的编译、安装

源地址:https://www.python.org/downloads/source/

# mkdir -p /usr/local/python38
# cd /usr/local/python38
# wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz //下载

# xz -d Python-3.8.2.tar.xz 
# tar -xf Python-3.8.2.tar       //解压

//进入解压后的目录,依次执行下面命令进行手动编译
# ./configure prefix=/usr/local/python38
# make && make install  

如果最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python38目录

添加软链接

# mv /usr/bin/python /usr/bin/python.bak.2020.03.06 //备份
# ln -s /usr/local/python38/bin/python3.8 /usr/bin/python
# ln -s /usr/local/python38/bin/python3.8 /usr/bin/python3 
# ll /usr/bin/python*
# python -V
//Python 3.8.2

# ll /usr/bin/pip*
# ln -s /usr/local/python38/bin/pip3 /usr/bin/pip3
# ll /usr/bin/pip* 
# pip3 install --upgrade pip //更新

更改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  //起始第一句  

更改firewall-cmd 配置

//由于 Centos 7 自带的 firewall-cmd 会用到python2才能执行,否则会导致firewall-cmd 不能正常使用,因此我们需要更改下 firewall-cmd 的配置:
vi /usr/bin/firewall-cmd
把#! /usr/bin/python修改为#! /usr/bin/python2   //起始第一句 

vi /usr/sbin/firewalld
把#! /usr/bin/python修改为#! /usr/bin/python2    //起始第一句 
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注