CentOS 7 中默认安装了 Python,版本比较低(2.7.5),为了使用新版 3.x,需要对旧版本进行升级。
下载新版本python
在python官网下载最新的源码包:https://www.python.org/downloads/source/。
可以直接下载然后上传到服务器,也可以通过wget进行下载:1
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
安装准备-提前排雷
安装gcc相关
1 | yum install make gcc gcc-c++ |
因为是源码编译安装,需要gcc相关组件的支持,否则在编译时会报如下错误。
执行./configure
时,报错:
说明没有安装合适的编译器。这时,需要安装/升级gcc
及其它依赖包。然后重新执行。
安装zlib相关
1 | yum -y install zlib* |
在make
阶段,需要zlib
组件。否则会报zlib not available
的异常。
从错误信息分析,就是缺少了zlib的解压缩类库,安装即可。然后重新编译安装python。
安装readline-devel
1 | yum install readline-devel |
否则会出现安装完成后Python
终端无法使用退格,上下左右。需要安装readline-devel
后重新编译安装Python。
安装配置
编译 安装
1 | tar zxvf Python-3.6.3.tgz |
验证
安装成功以后,就可以查看Python的版本:
一个是旧版本 2.x,另外一个是新版本 3.x。
注意:在/usr/local/bin/
下有一个python3
的链接,指向bin
目录下的python 3.6
。
安装后的配置
设置 3.x 为默认版本
查看 Python 的路径,在/usr/bin
下面。可以看到python
软链接的是python 2.7
,所以,执行python
就相当于执行python 2.7
。1
2
3
4[root@centos7 bin]# ls -al /usr/bin | grep python
lrwxrwxrwx. 1 root root 7 8月 17 18:01 python -> python2
lrwxrwxrwx. 1 root root 9 8月 17 18:01 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 6 2016 python2.7
备份python2
1 | mv /usr/bin/python /usr/bin/python2.7.bak |
修改软连接
1 | ln -s /usr/local/bin/python3.6 /usr/bin/python |
这时再查看Python版本:1
2[root@centos7 bin]# python -V
Python 3.6.3
配置 yum
升级Python
之后,由于将默认的python
指向了python3
,yum
不能正常使用,需要编辑 yum
的配置文件,改为使用python2.7
:1
2
3
4
5
6[root@centos7 bin]# vim /usr/bin/yum
#!/usr/bin/python2.7
import sys
try:
import yum
同时修改/usr/libexec/urlgrabber-ext-down
中的配置。1
2
3
4
5[root@centos7 bin]# vim /usr/libexec/urlgrabber-ext-down
#! /usr/bin/python2.7
# A very simple external downloader
# Copyright 2011-2012 Zdenek Pavlas
参考:
http://blog.csdn.net/liang19890820/article/details/51079633
https://www.cnblogs.com/uangyy/p/5980998.html