原文:http://www.cnblogs.com/lclq/archive/2016/06/27/5620196.html
1.查看是否已经安装Python
Centos7默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。
使用python -V命令查看一下是否安装Python:
python -V
然后查看一下Python可执行文件的位置:
which python
进入到其可执行文件所在目录:
ls python*
ls -al python*
可以看到可执行文件python指向python2,python2又指向python2.7也就是说Python命令执行的系统预装的Python2.7。
要安装Python的其他版本先执行mv python python.bak命令备份python文件。
2.安装新版本的Python
下载Python新版本https://www.python.org/downloads/source/
下载tgz包就可以了。其实下面的2个包其一都可以使用
Python-3.6.1.tgz (这个不是编译过的东西,不能解压之后直接使用)
Python-3.6.1.tar.xz (这个是pthon的源码)
讲下载的tgz包上传到Linux服务器。
或者执行wget命令直接下载到服务器:wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
解压缩:tar -zxvf Python-3.6.1.tgz
加压缩之后该目录下出现Python-3.6.1文件夹,进入到文件夹下执行编译安装。
执行 ./configure --prefix=/usr/local/python/python3 命令。
这时可能出现错误提示“ no acceptable C compiler found in $PATH”,此时需安装GCC软件套件(yum -y install gcc)
然后再次执行前边未成功的命令。(执行完后提示“If you want a release build with all optimizations active (LTO, PGO, etc),
please run ./configure --enable-optimizations”,我没有执行此操作。)
./configure命令执行完毕之后创建一个文件creating Makefile,供下面的make命令使用 执行make install之后就会把程序安装到我们指定的目录中去。
Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。
其中--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放
在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。
如果配置--prefix,如:
./configure --prefix=/usr/local/test
可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。
用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,
就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。
然后执行make(编译)
然后执行make install(安装)
此时可能会出现错误“ can't decompress data; zlib not available”,
解决办法:
1、安装依赖zlib、zlib-devel
下载Zlib库,地址:http://www.zlib.net/zlib1211.zip 用wget下载,然后再用unzip解压一下,然后就像一般软件一样 ./configure && make && make install .(注意要root权限)
2、重新编译安装Python
安装成功之后进入到python3文件夹可以看到Python的可执行文件目录、lib目录等相关目录。
执行ln -s /usr/local/python/python3/bin/python3 /usr/bin/python命令创建软连接。执行python -V查看Python是否安装成功。
3.修改yum配置文件
因为yum使用python2,因此替换为python3后可能无法正常工作,继续使用这个python2.7.5
因此修改yum配置文件(vi /usr/bin/yum)。
把文件头部的#!/usr/bin/python改成#!/usr/bin/python2.7保存退出即可。
因为yum使用python2,因此替换为python3后可能无法正常工作,继续使用这个python2.7.5因此修改yum配置文件(vi /usr/bin/yum)。把文件头部的#!/usr/bin/python改成#!/usr/bin/python2.7保存退出即可。对于CentOS7,文件/usr/libexec/urlgrabber-ext-down头部也需做相同操作。