目的:由于centos自带的python是2,我们要安装python3,并使2和3共存,通过python2来调用2,python3来调用3
自带的python的软连接的结构是,python指向python2,python2指向python2.6
且自带的python没有安装pip即pip命令无效果
1.检查系统自带的python是什么版本的
whereis python
2.安装python3
新建python3的目录
[hadoop@localhost ~]$ mkdir myProject
[hadoop@localhost ~]$ cd myProject
[hadoop@localhost myProject]$ mkdir python3
[hadoop@localhost myProject]$ cd python3/
执行下面命令安装python3
[hadoop@localhost python3]$ wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
上图表示下载完毕
[hadoop@localhost python3]$ tar -xvJf Python-3.6.2.tar.xz
[hadoop@localhost python3]$ cd Python-3.6.2
编译:
[hadoop@localhost Python-3.6.2]$ ./configure --prefix=/home/hadoop/myProject/python3/
出现上图为编译完成
安装:
[hadoop@localhost Python-3.6.2]$ make && make install
出现上图说明环境依赖问题:
使用root用户执行下面命令:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
[hadoop@localhost Python-3.6.2]$ cd /home/hadoop/myProject/python3/Python-3.6.2
再次安装
[hadoop@localhost Python-3.6.2]$ make && make install
创建软连接
使用root用户执行下面命令:
先修改旧版本
[hadoop@localhost Python-3.6.2]$ mv /usr/bin/python /usr/bin/python.bak
创建python3及pip的软链接
[root@localhost Python-3.6.2]$ ln -s /home/hadoop/myProject/python3/bin/python3 /usr/bin/python3
[root@localhost Python-3.6.2]# ln -s /home/hadoop/myProject/python3/bin/pip3 /usr/bin/pip3
[root@localhost Python-3.6.2]# python3
但是我们输出python2发现没效果,是因为如下图所示,在/usr/bin/下面,没有python2的链接。所以我们执行python2.6发现是可以的
[root@localhost bin]# python2.6
千万不要觉得别扭我们就把python2.6改成python2!!!!(如果执行下面代码会有很多的问题,比如在启动saltstack的时候还要修改/etc/init.d/salt-master里面的源码!!很麻烦,据我推断应该有很多的东西都是使用系统默认的python库的,但是现在还不知道如何解决)
[root@localhost bin]# mv /usr/bin/python2.6 /usr/bin/python2
3.修改yum依赖的python
执行yum发现报错
是因为执行yum需要python2版本,所以我们还要修改yum的配置,执行:
[root@node1 yum.repos.d]# vi /usr/bin/yum
把python改成python2.6
更改后如下图:
最后验证yum是否可用: