centos6.X升级python3.X方法
1、下载
# wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
2、解压
# tar -xvf Python-3.7.0.tgz
3、编译、安装
# mkdir /usr/local/python3
#yum -y install perl gcc make kernel-headers kernel-devel
# yum -y install libffi-devel
# yum -y install zlib*
# cd Python-3.7.0
# ./configure --prefix=/usr/local/python3
# make && make install
4、建立新版本的链接
# mv /usr/bin/python /usr/bin/python2.6.6
# ln -s /usr/local/python3/bin/python3 /usr/bin/python
# python -V
Python 3.7.0
在rhel6中安装python3.7的时候报如下错误
ModuleNotFoundError: No module named ‘_ctypes‘报错
是由于缺少libffi-devel开放库导致,可通过一下方法安装
rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/libffi-devel-3.0.5-3.2.el6.x86_64.rpm
重新编译安装python源码包即可
python升级带来的yum异常
# yum
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
原因:这是因为yum采用python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 6自带的yum采用的是python2.6,当系统将python升级到3.0后,出现语法解释错误。
解决办法:
很简单,一是升级yum,一是修改yum的解释器为旧版本python2.6(如果你没有采用覆盖升级的话)
升级yum的作法就不详述了;
修改yum的解释器为旧版本python2.6:
vi /usr/bin/yum
将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.6"即可
在Linux系统下 Python Shell 使用方向键会出现^[[A ^[[B ^[[C ^[[D的情况,这时我们需要安装readline
#yum -y install readline-devel
然后重新编译,安装
#./configure --prefix=/usr/local/python3
# make && make install