采用update-alternatives 切换python版本

2023-11-20

 

update-alternatives是Debian提供的一个工具(非Debian系的就不用看了),原理类似于上面一个办法,也是通过链接的方式,但是其切换的过程非常方便。

首先看一下update-alternatives的帮助信息:

$ update-alternatives --help
用法:update-alternatives [<选项> ...] <命令>

命令:
  --install <链接> <名称> <路径> <优先级>
    [--slave <链接> <名称> <路径>] ...
                           在系统中加入一组候选项。
  --remove <名称> <路径>   从 <名称> 替换组中去除 <路径> 项。
  --remove-all <名称>      从替换系统中删除 <名称> 替换组。
  --auto <名称>            将 <名称> 的主链接切换到自动模式。
  --display <名称>         显示关于 <名称> 替换组的信息。
  --query <名称>           机器可读版的 --display <名称>.
  --list <名称>            列出 <名称> 替换组中所有的可用候选项。
  --get-selections         列出主要候选项名称以及它们的状态。
  --set-selections         从标准输入中读入候选项的状态。
  --config <名称>          列出 <名称> 替换组中的可选项,并就使用其中
                           哪一个,征询用户的意见。
  --set <名称> <路径>      将 <路径> 设置为 <名称> 的候选项。
  --all                    对所有可选项一一调用 --config 命令。

<链接> 是指向 /etc/alternatives/<名称> 的符号链接。
    (如 /usr/bin/pager)
<名称> 是该链接替换组的主控名。
    (如 pager)
<路径> 是候选项目标文件的位置。
    (如 /usr/bin/less)
<优先级> 是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高。

选项:
  --altdir <目录>          改变候选项目录。
  --admindir <目录>        设置 statoverride 文件的目录。
  --log <文件>             改变日志文件。
  --force                  就算没有通过自检,也强制执行操作。
  --skip-auto              在自动模式中跳过设置正确候选项的提示
                           (只与 --config 有关)
  --verbose                启用详细输出。
  --quiet                  安静模式,输出尽可能少的信息。不显示输出信息。
  --help                   显示本帮助信息。
  --version                显示版本信息。

我们仅需要了解3个参数就行了

  • --install <链接> <名称> <路径> <优先级> :建立一组候选项
  • --config <名称> :配置 <名称>组中的可选项,并选择使用其中哪一个
  • --remove <名称> <路径> :从 <名称> 中去掉 <路径>选项

首先我们先看一下有没有关于Python的可选项:

$ update-alternatives --display python
update-alternatives: 错误: 无 python 的候选项

那首先先建立python的组,并添加Python2和Python3的可选项

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2 # 添加Python2可选项,优先级为2
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 #添加Python3可选项,优先级为1

注意,这里的 /usr/bin/python 链接文件,两个可选项必须是一样的,这样这个链接文件才可以选择两个不同的可选项去链接。

这时如果我们查看 /usr/bin/python 这个文件时,会发现它已经链接到了 /etc/alternatives/python 。

lrwxrwxrwx 1 root root        24  6月 19 18:39 python -> /etc/alternatives/python

然后我们再看一下版本

$ python --version
Python 2.7.6

为什么还是Python2,看一下配置

$ sudo update-alternatives --config python
有 2 个候选项可用于替换 python (提供 /usr/bin/python)。

  选择       路径              优先级  状态
------------------------------------------------------------
* 0            /usr/bin/python2.7   2         自动模式
  1            /usr/bin/python2.7   2         手动模式
  2            /usr/bin/python3.4   1         手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:

原来是因为默认选中了自动模式,而Python2的优先级高于Python3,(如果选择0,默认自动模式,会使用python2.7,如果选择1选择手动模式,Python2的优先级高于Python3,选择Python2,),这时候只要键入2,就可以使用Python3了。

如果你想要删除某个可选项的话:

$ sudo update-alternatives --remove python /usr/bin/python2.7

update-alternatives只适用于Debian系Liunx。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

采用update-alternatives 切换python版本 的相关文章

  • Java容器有哪些?哪些是同步容器,哪些是并发容器?

    Java容器有哪些 哪些是同步容器 哪些是并发容器 一 基本概念 容器集 同步容器 并发容器 二 Collection集合接口 List接口 LinkedList类 ArrayList类 Vector类 Stack类 Set接口 HashS
  • SQL报错——Incorrect column specifier for column ‘id‘

    自增 字段类型应该设置为int类型
  • C++面试 左值、右值、左值引用、右值引用

    1 左值和右值 左值 left values 缩写 lvalues located value 可定位值 其含义是可以明确其存放地址的值 更确切说对其的使用是基于地址 右值 right values 缩写 rvalues read valu
  • 【shell脚本通过curl调用判断k8s pod 是否启用成功】

    获取到指定的pod name viewer kubectl n skiff nsfdemo ns get pod grep viewer awk print 1 根据pod name 获取指定pod IP viewerIp kubectl
  • 【源码篇】基于SSM+JSP实现的学生宿舍管理系统

    系统介绍 基于SSM JSP实现的学生宿舍管理系统是一个基于B S模式的学生宿舍管理系统 为学生 学校和宿管阿姨搭建了一个灵活自由并且安全可靠的管理平台 系统设计了6大菜单模块 分别是 学生管理 学生信息的添加 修改 删除 查询 Excel
  • VScode+PHPstudy配置PHP开发环境详解

    这篇文章主要介绍了VScode PHPstudy配置PHP开发环境的步骤 整理了官方以及优秀第三方的内容 对于学习和工作有一定借鉴意义 准备安装的软件 VScode和PHPstudy 链接 https pan baidu com s 1T2
  • HTTP报文结构

    1 URL HTTP使用统一资源定位符 URL 协议 主机 端口 路径 2 HTTP 3 HTTP请求报文 请求行 首部 空行 主体 客户端发送一个HTTP请求到服务器的请求报文如下 1 请求行 方法 URL 空行 协议的版本 中间空格隔开
  • Qt公有槽和私有槽的区别

    Qt遵循C 的规则 当槽函数作为一个成员函数 公有槽可以被其他类调用 而私有槽只能被类自身调用 当槽函数被信号触发而被调用时 公有槽和私有槽没有区别 它们都能被外部信号触发 参考链接 https stackoverflow com ques
  • JavaEE学习记录day11 IO流02 字符流、转换流、Properties集合

    1 字符流 1 1为什么会出现字符流 理解 字符流的介绍 由于字节流操作中文不是特别的方便 所以Java就提供字符流 字符流 字节流 编码表 中文的字节存储方式 用字节流复制文本文件时 文本文件也会有中文 但是没有问题 原因是最终底层操作会
  • 黑幕!阿里P8爆出学透这份算法面试文档,不再怕任何大厂算法题

    为什么要学习数据结构和算法 随着应用程序变得越来越复杂和数据越来越丰富 几百万 几十亿甚至几百亿的数据就会出现 而对这么大对数据进行搜索 插入或者排序等的操作就越来越慢 数据结构就是用来解决这些问题的 阅读本教程前 您需要了解的知识 在您开
  • FastDFS storage服务器安装Nginx

    环境准备 操作系统 Centos 服务器 192 168 60 165 storage服务器 软件包 fastdfs nginx module 1 20 tar gz nginx 1 14 0 tar gz 软件包下载地址 待补充 第一步
  • Hive 窗口函数如何设置窗口大小

    select city year taxes sum money over as sample1 所有行相加 sum money over partition by city as sample2 按city分组 组内数据相加 sum mo
  • Linux下用inotify-tool实时监控服务器文件

    说明 服务器系统 CentOS 文件目录 home web os 实现目的 当 home web os下面除过cache目录之外 任何文件发生变化时 记录日志并保存 具体操作 一 安装Inotify tools工具 1 查看服务器内核是否支
  • Android SurfaceFlinger服务(三) ----- 本地图层Layer创建

    在上一篇文章中 主要分析了Surface的创建过程 对于Layer图层的创建并没有深入跟踪分析 这篇文章将分析Layer图层的创建 并分析handle gbp这两个变量的来源 在SurfaceFlinger中会根据flags的值创建不同的l
  • CMake中include的使用

    CMake中的include命令用于从文件或模块 file or module 加载并运行CMake code 其格式如下 include

随机推荐

  • 【算法】Dijkstra最短路算法

    上周我们介绍了神奇的只有五行的Floyd最短路算法 它可以方便的求得任意两点的最短路径 这称为 多源最短路 本周来来介绍指定一个点 源点 到其余各个顶点的最短路径 也叫做 单源最短路径 例如求下图中的1号顶点到2 3 4 5 6号顶点的最短
  • VS+QT开发Ocx/ActiveX控件 一

    VS QT开发Ocx ActiveX控件 一 VS QT开发Ocx ActiveX控件 网页中全屏 二 QT开发ActiveX控件 一 所用IDE版本 需用管理员权限 二 创建ActiveX 三 qt desinger 四 regsvr32
  • java虚拟机win10_Win10系统启动软件出现Java虚拟机错误的解决方法

    在 1 为Java设置新的系统变量 当Java需要更大的全局最大堆内存大小时 通常会出现Java虚拟机错误 用户通过扩展分配给Java的最大RAM来解决该问题 用户可以通过建立新的Java System Variable来实现 如下所示 使
  • Linux Debian Jenkins快速搭建配置并运行

    Jenkins安装 参考Debian Jenkins Packageshttps pkg origin jenkins io debian stable 加Key curl fsSL https pkg jenkins io debian
  • C++98 auto_ptr智能指针

    auto ptr 是C 98定义的智能指针模板 其定义了管理指针的对象 可以将new获得 直接或间接 的地址赋给这种对象 当对象过期时 其析构函数将使用delete来释放内存 用法 头文件 include
  • chatgpt赋能python:Python金额计算

    Python金额计算 Python是一种高级编程语言 因其易于阅读 简单 灵活和易于学习而广受欢迎 它还具有强大的数学和计算功能 因此 它是一种非常流行的用于金额计算的工具 在本文中 将介绍如何使用Python进行金额计算 包括不同的货币格
  • mysql-client客户端安装

    测试 生产环境中 有时并不需要在本地安装一个mysql server服务 只需要安装一个登录mysql server 的mysql的客户端client centos6系统上安装mysql client的方式 yum install mysq
  • GDI+学习笔记7-统计报表的图形绘制

    图形编程 SetPixel 设置指定点的颜色 COLORREF SetPixel HDC hDC int X int Y COLORREF crColor hDC 绘制点的DC X Y 坐标位置 crColor 设置的颜色 返回值为设置颜色
  • ubuntu虚拟机与windows系统间不能复制粘贴

    sudo tar zxf VMwareTools 10 3 23 17030940 tar gz 这个命令时解压文件 输入 sudo vmware tools distrib vmware install pl 与 vmware tools
  • PHP的进制转换与字符串的编码解码

    目录 一 进制转换函数 dechex hexdec decbin bindec base convert 二 编码解码函数 bin2hex hex2bin pack 和 unpack 三 字符串类型详解 PHP字符串 从PHP 5 2 1版
  • 15.输入捕获

    1 输入捕获介绍 STM32除了基本定时器 定时器6和定时器7 之外 其他的都具有输入捕获功能 输入捕获可以对输入的信号的上升沿 下降沿或双边沿进行捕获 通常用于测量输入信号的脉宽 测量PWM输入信号的频率及占空比 首先将捕获到t1信号之后
  • [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例

    娜璋带你读论文 系列主要是督促自己阅读优秀论文及听取学术讲座 并分享给大家 希望您喜欢 由于作者的英文水平和学术能力不高 需要不断提升 所以还请大家批评指正 非常欢迎大家给我留言评论 学术路上期待与您前行 加油 前一篇从个人角度介绍英文论文
  • Linux调出git页面,Linux 显示 git 分支 及 完整路径

    一 编辑 bashrc文件vim bashrc 二 在文件末尾添加如下shellfunction git branch branch git branch 2 gt dev null grep sed e s if branch then
  • 在线使用AI合集

    POE 前言 目前有关注的小伙伴应该会发现 ChatGPT注册功能已经关闭 那些还没有注册的小伙伴岂不是不能使用ChatGPT 今天为大家推荐的就是Poe AI机器人集合 Sage Claude ChatGPT Dragonfly Poe链
  • 前端数据请求的10种方式与最佳实践

    前言 在前端开发中 数据请求是经常遇到的一个问题 本文将介绍前端常见的10种数据请求方式 并给出每个方式的代码示例与使用场景 以帮助开发者更好的选择和使用 1 Fetch API Fetch API 是浏览器内置的一个用于网络请求的全局接口
  • 在ubuntu下安装并测试pig以及常见的问题

    1 安装 只安装在namenode节点上即可 1 1 下载并解压 下载 http pig apache org releases html下载pig 0 12 1版本的pig 0 12 1 tar gz 存放路径 home Hadoop 解
  • EXCEL导出封装 C#

    public class ExportToExcel public void Export List
  • flutter 一个Widget布局只return一次,但是可以有叠加覆盖的思想

    首先一个Widget只会return一次 但是如果有多个情况 多个判断 通过不同情况返回不同布局 就可以通过叠加的方式 下一个布局会替换掉上一个布局 messageTypeView Container 保底防止报错 文字 case 1 me
  • STM32串口通信详解

    作者简介 嵌入式入坑者 与大家一起加油 希望文章能够帮助各位 个人主页 rivencode的个人主页 系列专栏 玩转STM32 保持学习 保持热爱 认真分享 一起进步 目录 一 数据通信方式 1 串行与并行通信 2 全双工 半双工及单工通讯
  • 采用update-alternatives 切换python版本

    update alternatives是Debian提供的一个工具 非Debian系的就不用看了 原理类似于上面一个办法 也是通过链接的方式 但是其切换的过程非常方便 首先看一下update alternatives的帮助信息 update