CentOS 7下Python 2.7升级至Python3.6.1的实战教程

yipeiwu_com6年前Python基础

前言

大家应该都知道,Centos是目前最为流行的Linux服务器系统,其默认的Python 2.x,但是根据python社区的规划,在不久之后,整个社区将向Python3迁移,且将不在支持Python2, 那该如何平滑迁移至Python3 呢?

1.  环境介绍

Centos 7,   当前的Python版本2.7.12

>> uname -a 

Linux AY131203102210033c39Z 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 

>> cat /etc/os-release

NAME="CentOS Linux" 
VERSION="7 (Core)" 
ID="centos" 
ID_LIKE="rhel fedora" 
VERSION_ID="7" 
PRETTY_NAME="CentOS Linux 7 (Core)" 
ANSI_COLOR="0;31" 
CPE_NAME="cpe:/o:centos:centos:7" 
HOME_URL="https://www.centos.org/" 
BUG_REPORT_URL="https://bugs.centos.org/" 
 
CENTOS_MANTISBT_PROJECT="CentOS-7" 
CENTOS_MANTISBT_PROJECT_VERSION="7" 
REDHAT_SUPPORT_PRODUCT="centos" 
REDHAT_SUPPORT_PRODUCT_VERSION="7" 

二、下载Python 3.x的安装包

默认linux的安装包只能是源码安装:

>> wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

由于xz结尾的文件,故可以使用如下命令来解压:

>> xz -d Python-3.6.1.tar.xz

>> tar xvf Python-3.6.1.tar

三、  编译并安装

>> mkdir /usr/local/python3

>> cd Python-3.6.1 #进入源码文件目录

>> sudo ./configure --prefix=/usr/local/python3 --enable-optimizations

    

>> sudo make # 此过程将持续较长的时间

    

四、 替换python

  >> cd /usr/bin

  >> mv python python.bak

其中有python, python2.7, python2三个文件,其实都是指向python2.7的,这里将python备份

  >> sudo ln -s /usr/local/python3/bin/python3.6 /usr/bin/python

 >> python -V

检查python的版本是否被正确替换掉了。

五、收尾替换工作

原则: 所有python相关的应用,如果为使用/usr/bin/python开头的脚本统统替换掉, 如果其只能在python2.7下执行,则替换为python2.7。

根据网路上的信息,相关的文件可能有如下, 具体情况视具体情况而定:

 a.  /usr/bin/yum

 b./usr/libexec/urlgrabber-ext-down

总结

过程比较简单,期待Centos7尽快升级到Python3.

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对【听图阁-专注于Python设计】的支持。

相关文章

Django为窗体加上防机器人的验证码功能过程解析

Django为窗体加上防机器人的验证码功能过程解析

这里我们使用 django-simple-captcha 模块,官方介绍如下:https://github.com/mbi/django-simple-captcha 一键安装: p...

Python def函数的定义、使用及参数传递实现代码

Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为: def 函数名(参数1, 参数2, ……, 参数N): 执行语句函数名为调用的表示名,参数则是传入的参数...

python简单实现操作Mysql数据库

用python编写数据库的代码很方便,但是如果不想自己写sql语句,其实还有更多的讨巧办法。使用webpy的db库就是不错的一个选择。当然为了使用webpy的db,之前你还需要安装MyS...

在Python中操作列表之List.append()方法的使用

 append()方法追加传递obj到现有的列表。 语法 以下是append()方法的语法: list.append(obj) 参数   &...

在Python中操作文件之read()方法的使用教程

 read()方法读取文件size个字节大小。如果读取命中获得EOF大小字节之前,那么它只能读取可用的字节。 语法 以下是read()方法的语法: fileObject.r...