一、前言

 最近迷上了python,所以准备开始上手python。由于python2维护较少,python3必然是趋势了,所以我准备用python3.6学习python。CentOS7.3默认安装的是python2.7,所以我需要从官网上下载python3.6并编译安装python3.6,但是比较尴尬的是,CentOS的yum环境支持python2而不支持python3,所以需要通过一些小小的修改,才能在正常的使用python3.6的同时也能正常的使用yum。这其实没什么难的,python3就按照正常的编译安装即可,yum环境支持只需要在/usr/bin/yum的以及/usr/libexec/urlgrabber-ext-down的第一行做一些软链接的修改即可。详细内容请看操作步骤。

 二、操作步骤

    1.编译环境准备

1
2
 yum groupinstall 'Development Tools'
 yum install zlib-devel bzip2-devel openssl-devel ncurese-devel

    2.下载python3.6源码包

1
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2rc1.tar.xz

    3.解压压缩包

1
tar -xvf Python-3.6.2rc1.tar.xz

     4.编译安装步骤

1
2
3
    cd Python-3.6.2rc1/
    ./configure --prefix=/usr/local/python3
    make && make install

     5.修改软链接以及修改yum支持环境路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
     5.1修改软链接以及相关操作
    mv /usr/bin/python2.7 /usr/bin/python2.7.5          #先更改python2.7的名字
    rm /usr/bin/python -r                     #删除原先的软链接
    ln -s /usr/bin/python2.7.5 /usr/bin/python2.7        #将python2.7环境软链接至/usr/bin/python2.7 
    ln -s /usr/local/python3/bin/python3.6 /usr/bin/python    #将python3.6环境软链接至/usr/bin/python
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip        #将pip3软链接至/usr/bin/pip
    python -V                                                     #查看目前使用的python版本
        Python 3.6.2rc1
    pip -V                                                        #查看pip版本
        pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)
    python2.7 -V
        Python 2.7.5                                               #当然你也可以使用python2.7.5
    yum repolist                                                  #测试yum环境,yum环境失效
    [root@localhost bin]# yum repolist
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
      File "/usr/libexec/urlgrabber-ext-down", line 28     #报错位置
        except OSError, e:
                      ^
    SyntaxError: invalid syntax
      File "/usr/libexec/urlgrabber-ext-down", line 28
        except OSError, e:
                      ^
    SyntaxError: invalid syntax
    Exiting on user cancel
     
    5.2恢复yum环境相关操作
    vi /usr/bin/yum
    第一行修改为
    #!/usr/bin/python2.7
    vi /usr/libexec/urlgrabber-ext-down
    第一行修改为
    #!/usr/bin/python2.7
     
    5.3测试yum环境
    yum repolist                                                    #再次测试yum环境,yum环境正常    
        Loaded plugins: fastestmirror, langpacks
        Loading mirror speeds from cached hostfile
        repo id          repo name                                    status
        cd               cd                                            9,363
        centos           centos repository                             9,363
        epel             extra packages for enterprise linux          11,349
        repolist: 30,075