当前位置: 首页 > news >正文

【运维】如何更换Ubuntu默认的Python版本,update-alternatives如何使用

update-alternatives 是一个在 Debian 及其衍生发行版中(包括 Ubuntu)用于管理系统中可替代项的命令。它可以用于在系统中设置默认的软件版本,例如在不同版本的软件之间进行切换,比如不同的 Python 版本。

要在 Ubuntu 中使用 update-alternatives 来更改 Python 版本并安装包,可以按照以下步骤进行:

  1. 安装所需的 Python 版本
    添加 DeadSnakes PPA:DeadSnakes 是一个 Ubuntu PPA,提供了最新版本的 Python。你可以尝试添加该 PPA 并安装 Python 3.8。运行以下命令:

    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt update
    

    如果你希望在系统中使用不同的 Python 版本,首先需要确保这些版本已经安装。例如,如果你希望安装 Python 3.8 和 Python 3.9,则可以使用以下命令安装它们:

    sudo apt update
    sudo apt install python3.8 python3.9
    
  2. 设置可替代项
    使用 update-alternatives 命令为不同的 Python 版本创建可替代项。假设你已经安装了 Python 3.8 和 Python 3.9,你可以通过以下命令为它们创建可替代项:

    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2
    

    这里,数字 12 是优先级,用于指示默认的 Python 版本。较高的数字表示较高的优先级,因此,Python 3.9 将成为默认版本。

  3. 选择默认的 Python 版本
    使用 update-alternatives 命令来选择默认的 Python 版本。你可以通过以下命令进行选择:

    sudo update-alternatives --config python3
    

    这将列出系统中安装的 Python 版本,并提示你选择默认的版本。根据提示选择你想要的版本。

  4. 安装 Python 包
    安装你需要的 Python 包,你可以使用适用于所选 Python 版本的 pip 工具。例如,如果你选择了 Python 3.9 作为默认版本,则可以使用以下命令安装包:

    sudo apt install python3.9-distutils  # 如果需要,安装 distutils
    sudo apt install python3.9-<package_name>
    

通过上述步骤,你可以在 Ubuntu 中使用 update-alternatives 更改默认的 Python 版本,并安装你所需的包。

相关文章:

  • C++从入门到精通(最详细教程,12万总结,带你掌握c++知识,涵盖大量知识点)
  • 3、前端本地环境搭建
  • 门面模式Api网关(SpringCloudGateway)
  • C++【STL】改造红黑树简单模拟实现set map(带你了解set map的底层实现结构)
  • c语言基础篇B
  • ORA-12519 TNS:no appropriate service handler found
  • el-date-picker设置结束时间为23:59:59
  • Hudi Spark Sql Procedures 回滚 Hudi 表数据
  • 项目-基于LangChain的ChatPDF系统
  • calico node一直not ready
  • 前端UI框架Element Plus 和 Ant Design Vue哪个好
  • 大模型微调工具LLaMA-Factory docker安装、大模型lora微调训练
  • 通用Mapper基础学习
  • [MQTT]服务器EMQX搭建SSL/TLS连接过程(wss://)
  • 以客户为中心:消费电子行业的产品研发之道
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ComponentOne 2017 V2版本正式发布
  • CSS实用技巧
  • Hexo+码云+git快速搭建免费的静态Blog
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java,console输出实时的转向GUI textbox
  • JS实现简单的MVC模式开发小游戏
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Octave 入门
  • React Native移动开发实战-3-实现页面间的数据传递
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • vue中实现单选
  • Vue组件定义
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 基于Android乐音识别(2)
  • 简析gRPC client 连接管理
  • 面试总结JavaScript篇
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 深度学习中的信息论知识详解
  • 我的业余项目总结
  • 学习HTTP相关知识笔记
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #php的pecl工具#
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (07)Hive——窗口函数详解
  • (1)常见O(n^2)排序算法解析
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (分布式缓存)Redis持久化
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (一)VirtualBox安装增强功能
  • (转)h264中avc和flv数据的解析
  • (转)视频码率,帧率和分辨率的联系与区别
  • ***监测系统的构建(chkrootkit )
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .Net CoreRabbitMQ消息存储可靠机制