• CentOS 7从Python 2.7升级至Python3.6.1


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

    1.  环境介绍

       Centos 7,   当前的Python版本2.7.12

      >> uname -a  

    [html] view plain copy
     
    1. 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

    [html] view plain copy
     
    1. NAME="CentOS Linux"  
    2. VERSION="7 (Core)"  
    3. ID="centos"  
    4. ID_LIKE="rhel fedora"  
    5. VERSION_ID="7"  
    6. PRETTY_NAME="CentOS Linux 7 (Core)"  
    7. ANSI_COLOR="0;31"  
    8. CPE_NAME="cpe:/o:centos:centos:7"  
    9. HOME_URL="https://www.centos.org/"  
    10. BUG_REPORT_URL="https://bugs.centos.org/"  
    11.   
    12. CENTOS_MANTISBT_PROJECT="CentOS-7"  
    13. CENTOS_MANTISBT_PROJECT_VERSION="7"  
    14. REDHAT_SUPPORT_PRODUCT="centos"  
    15. REDHAT_SUPPORT_PRODUCT_VERSION="7"  

    2. 下载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

    3.  编译并安装

        >>  mkdir /usr/local/python3

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

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

         

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

         

        3.  替换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的版本是否被正确替换掉了。

    4.  收尾替换工作

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

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

        a.  /usr/bin/yum

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

       5. 总结

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

       转自http://blog.csdn.net/blueheart20/article/details/70062671

  • 相关阅读:
    bat批处理脚本学习系列(一)
    遇到的bug
    util.js 积累的一些基础函数代码
    session过期跳转到登陆页面并解决跳出iframe问题
    Centos7下的rabbitmq-server-3.8.11安装配置
    简单梳理 ES6 函数
    博客目录与学习计划
    DDD中聚合、聚合根的含义以及作用
    DDD中实体与值对象是干什么的
    DDD中限界上下文与通用语言的作用
  • 原文地址:https://www.cnblogs.com/zhaooyw/p/7991556.html
Copyright © 2020-2023  润新知