CentOS 7 默认的python版本是python2.7.5。因为yum依赖于默认的python版本的缘由,所以要先保留默认版本,并修改yum文件头部后,才能开始安装更新python2和python3两个最新版本。(python2和python3共存)

一. 保留默认python版本2.7.5,并修改yum头部,保持yum对默认版本python2.7.5的依赖

1.su root  # 获取root权限

2.mv /usr/bin/python2.7 /usr/bin/python2.7.5  # 保留默认版本python为python2.7.5

 ln -s /usr/bin/python2.7.5 /usr/local/bin/python2.7.5  # 创建软连接

3.ll /usr/bin/yum*  # 查看/usr/bin/目录下所有yum文件(7个)头部

4.vi /usr/bin/yum*  # 修改/usr/bin/目录下所有yum文件(7个)头部

  #!/usr/bin/python —> #!/usr/bin/python2.7.5  

5.vi /usr/libexec/urlgrabber-ext-down  # 修改/usr/libexec/目录下 urlgrabber-ext-down头部

  #!/usr/bin/python —> #!/usr/bin/python2.7.5

二. 安装最新版python2.7.13和python3.6.2(python2和python3共存,修改后默认版本为python3.6.2)

准备工作:

1. 安装wget命令(可以在线下载安装包的命令)

  yum -y install wget

2. 准备编译环境

  yum groupinstall 'Development Tools'
  yum install zlib-devel bzip2-devel openssl-devel ncurses-devel
3. 下载并安装最新版本的python2和python3的tgz压缩文件

  https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
  https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

开始安装:

1. 进入下载目录:

  cd /usr/local/src

2. 下载并安装最新版本python2:
  wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
  tar zxvf Python-2.7.13.tgz
  cd Python-2.7.13
  ./configure 
  make all
  make install
  make clean
  make distclean
  rm -rf /usr/bin/python
  rm -rf /usr/bin/python2
  rm -rf /usr/bin/python2.7
  ln -s /usr/local/bin/python2.7 /usr/bin/python
  ln -s /usr/local/bin/python2.7 /usr/bin/python2
  ln -s /usr/local/bin/python2.7 /usr/bin/python2.7
  /usr/bin/python -V
  /usr/bin/python2 -V
  /usr/bin/python2.7 -V
  rm -rf /usr/local/bin/python
  rm -rf /usr/local/bin/python2
  ln -s /usr/local/bin/python2.7 /usr/local/bin/python
  ln -s /usr/local/bin/python2.7 /usr/local/bin/python2
  python -V
  python2 -V
  python2.7 -V

3. 下载并安装最新版本python3:
  wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
  tar zxvf Python-3.6.2.tgz
  cd Python-3.6.2
  ./configure
  make all
  make install
  make clean
  make distclean
  rm -rf /usr/bin/python
  rm -rf /usr/bin/python3
  rm -rf /usr/bin/python3.6
  ln -s /usr/local/bin/python3.6 /usr/bin/python
  ln -s /usr/local/bin/python3.6 /usr/bin/python3
  ln -s /usr/local/bin/python3.6 /usr/bin/python3.6
  /usr/bin/python -V
  /usr/bin/python3 -V
  /usr/bin/python3.6 -V
  rm -rf /usr/local/bin/python
  rm -rf /usr/local/bin/python3
  ln -s /usr/local/bin/python3.6 /usr/local/bin/python
  ln -s /usr/local/bin/python3.6 /usr/local/bin/python3
  python -V
  python3 -V
  python3.6 -V

转载自:CentOS7保留默认Python版本并安装更新Python2和Python3共存

CentOS7保留默认Python版本并安装更新Python2和Python3共存的更多相关文章

  1. python解释器的安装;python2与python3同时在环境变量中时的解决方案

    新文档 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,addres ...

  2. ubuntu配置默认python版本并安装pip

    ubuntu 16.04本身是自带python的,他本身是自带2.X和3.X,两个版本,默认的是2.X.这里记录一下如果在版本间切换以及如何把python版本切换到3.X下的方法. 1.查看Ubunt ...

  3. python版本坑:md5例子(python2与python3中md5区别)

    对于一些字符,python2和python3的md5加密出来是不一样的. Python2 和Python3MD5加密 # python2.7 pwd = "xxx" + chr(1 ...

  4. python2 和 python3共存的常见使用(如安装虚拟环境的问题)

    1.安装好python2和python3,配置好全部环境变量 环境变量修改后,需要重新启动命令行才有效 2.如何启动不同版本的python 启动的时候会执行python.exe,python2和pyt ...

  5. Debian中如何切换默认Python版本

    当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件,你可以按照以下方法使用 ls 命令来查看你的系 ...

  6. 更改Ubuntu默认python版本的方法

    当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件.一般Ubuntu默认的Python版本都为2. ...

  7. 更改Ubuntu默认python版本的两种方法python-> Anaconda

    当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件.一般Ubuntu默认的Python版本都为2. ...

  8. 更改 Ubuntu默认Python版本的问题

    一般Ubuntu默认版本为2.x,之前运行一些程序,将默认版本修改为3.5,现在想修改为2.7. 之前的方法有些忘记,现在重新记录一下: 1.查看你系统中有哪些Python的二进制文件可供使用, ls ...

  9. Ubuntu如何修改默认python版本为python3

    修改默认python版本 Ubuntu系统内置python2.7版本,默认运行python就是运行python2.7.现在很多人都是用python3作为开发语言,我们需要修改python的默认版本为p ...

随机推荐

  1. c++11 on Android

    C++11 on Android The latest Andoird NDK r8e finally supports some of the most important C++11 librar ...

  2. CCNA2.0笔记_路由相关

    路由器的工作内容 -路由器知道目标地址 -发现到达目标地址的可能的路由 -选择最佳路径(路由表) -维护路由信息 路由的来源 直连路由:直接连到路由器上的网络 -初始化情况下,路由器所知的网络,只有其 ...

  3. 浅谈P2P终结者原理及其突破

    P2P终结者按正常来说是个很好的网管软件,但是好多人却拿它来,恶意的限制他人的流量,使他人不能正常上网,下面我们就他的功能以及原理还有突破方法做个详细的介绍! 我们先来看看来自在网上PSP的资料:P2 ...

  4. (译)Getting Started——1.3.2 Using Design Patterns(使用设计模式)

    设计模式解决了一个常见的软件工程学问题.模式不是编码,它是抽象的设计.它用于帮助开发者定义数据模型的结构和应用的交互.如果你采用了某种设计模式,你需要把它的一般形式适配到你特殊的需求上.不论你的应用是 ...

  5. SAML2.0 协议初识(三)——IDP

    IDP,即提供身份认证服务的一端,通常,当 IDP 接收到 SP 发送的 SAML 认证请求后,解析 SAMLRequest 参数,包括 acs 地址.SP EntityId.绑定方式.是否加密等信息 ...

  6. VS2017 Use Git Push To TFS2018 Failure

    先上图: 提示信息很明确,认证失败!! 在使用TFS2018 建立Git Repo 的时候,有一句提示,如果遇到权限问题,请升级Git,我本地Git已经是最新版本,并且在环境变量中,如下图 经过分析觉 ...

  7. 微信小程序3 - 对象的合并

    ES6中 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目标对象( target ). 限制:   只是浅拷贝, 即 内部对象 不会拷贝,只是 引用 ...

  8. C语言 函数指针一(函数指针的定义)

    //函数指针 #include<stdio.h> #include<stdlib.h> #include<string.h> //函数指针类型跟数组类型非常相似 / ...

  9. php 判断白天黑夜

    <?php $h=date('H'); if($h>=8 && $h<=20) echo '白天'; else echo '夜晚'; ?>

  10. 将字符“12345”转换成long型

    将字符“12345”转换成long型 解答: String s=”12345″; long num=Long.valueOf(s).longValue();