Ubuntu22.04报错:ValueError: the symlink /usr/bin/python3 does not point to ...
目录
一、背景
二、如何解决呢?
三、解决步骤
1. 确定可用的 Python 版本
2. 重新设置符号链接
3. 选择默认版本
4. 验证:
四、update-alternatives 详解
1. 命令语法
2. 常用选项
`--install`添加备选项。
`--config`:选择默认版本。
3. 工作原理
4. 示例用法
5. 注意事项
一、背景
最近有同学在Ubuntu22.04上安装软件或执行程序报出以下错误:
ValueError: the symlink /usr/bin/python3 does not point to the python3 default version. It must be reset to point to python3.10。
这个错误很明显,这是一个Python错误,意思是软链接 /usr/bin/python3 没有指向 Python3 的默认版本。它必须重置为指向 Python3.10。
二、如何解决呢?
让/usr/bin/python3这个符号链接指向默认的 Python 3.10 版本就OK了。
在Debian系的系统(如Ubuntu)中可以使用update-alternatives这个软件版本管理工具。
三、解决步骤
1. 确定可用的 Python 版本
确保你系统中安装了 Python 3.10 版本或其他你想要使用的版本。你可以使用以下命令来查看已安装的 Python 版本:
ls /usr/bin/python*
这将列出系统中所有的 Python 可执行文件。
2. 重新设置符号链接
使用 `update-alternatives` 命令重新设置 `/usr/bin/python3` 符号链接。例如,如果你想要将其指向 Python 3.10,可以执行以下命令:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
这会将 Python 3.10 添加到可选列表中,并将其权重设置为 1。
3. 选择默认版本
使用以下命令选择默认的 Python 版本:
sudo update-alternatives --config python3
选择你想要作为默认的 Python 版本的编号。
4. 验证:
执行以下命令:
ls -l /usr/bin/python3

四、update-alternatives 详解
`update-alternatives` 是一个用于管理系统中软件版本的工具,允许用户在不同的备选项之间进行选择,以及设置默认的备选项。它通常用于系统中存在多个相似软件的情况,例如多个版本的编译器、解释器、JDK 等。
1. 命令语法
sudo update-alternatives [options]
2. 常用选项
`--install`添加备选项。
语法如下:
sudo update-alternatives --install /path/to/link name path/to/binary priority
- `/path/to/link`: 要设置的符号链接的路径。
- `name`: 符号链接的名称。
- `/path/to/binary`: 要链接到的实际可执行文件的路径。
- `priority`: 优先级,用于确定默认选择。
例如:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 100
`--config`:选择默认版本。
语法如下:
sudo update-alternatives --config name
例如:
sudo update-alternatives --config java
`--display`:显示当前配置。
语法如下:
sudo update-alternatives --display name
例如:
sudo update-alternatives --display java
`--remove`:从备选项列表中删除一个备选项。
语法如下:
sudo update-alternatives --remove name path/to/binary
例如:
sudo update-alternatives --remove java /usr/lib/jvm/java-8-openjdk-amd64/bin/java
3. 工作原理
`update-alternatives` 实际上是通过在系统中创建符号链接的方式来管理备选项。这些符号链接通常位于 `/etc/alternatives` 目录下,而实际的可执行文件则可以位于不同的目录中。通过设置优先级,可以确定默认选择。
4. 示例用法
假设有多个 Python 版本,可以使用 `update-alternatives` 设置默认的 Python 版本:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
sudo update-alternatives --config python3
这个例子中,通过 `--install` 选项添加了两个备选项,然后通过 `--config` 选项选择默认的 Python 版本。
5. 注意事项
- 使用 `sudo` 运行 `update-alternatives` 命令,因为这些操作通常需要管理员权限。
- 在配置完成后,符号链接会指向用户选择的默认备选项,使得系统中的软件可以引用该符号链接而不必关心具体的软件版本。
总的来说,`update-alternatives` 提供了一种灵活的方式来管理系统中的备选软件版本,让用户可以轻松切换默认版本。
相关文章:
Ubuntu22.04报错:ValueError: the symlink /usr/bin/python3 does not point to ...
目录 一、背景 二、如何解决呢? 三、解决步骤 1. 确定可用的 Python 版本 2. 重新设置符号链接 3. 选择默认版本 4. 验证: 四、update-alternatives 详解 1. 命令语法 2. 常用选项 --install添加备选项。 --config:选择默认版本。 …...
什么是 React的refs?为什么它们很重要
Refs是React中的一个特殊属性,用于访问在组件中创建的DOM元素或组件实例。 Refs的重要性在于它们提供了一种直接访问DOM元素或组件实例的方式,使得我们可以在需要时操作它们。在某些情况下,例如在处理表单输入、媒体播放或触发动画等场景下&…...
使用yarn时--解决error Error: certificate has expired问题
【HTTPS 证书验证失败】导致的这个问题! 解决方案:将yarn配置中的 strict-ssl 设置为 flase , 在 info yarn config 信息中, strict-ssl 为 true,表示需要验证 HTTPS 证书。我们可以将 strict-ssl 设置为 false,跳过 H…...
Sql server强制走索引
遇到一个奇怪的问题,同样的SQL,只是一个where条件不一样,一个是column1 AAA,一个是column1 BBB,他们的查询效率却差距甚大,一个要60秒,一个1秒以下。查看查询计划,一个使用了索引&…...
解决Android Studio gradle下载超时和缓慢问题(win10)
解决超时问题 一般配置阿里云代理就可以解决。 具体配置方法,参考:https://blog.csdn.net/zhangjin1120/article/details/121739782 解决下载缓慢问题 直接去腾讯云镜像下载: https://mirrors.cloud.tencent.com/gradle/ 下载好了之后&…...
Ps:根据 HSB 调色(以可选颜色命令为例)
在数字色彩中,RGB 和 HSV(又称 HSB)是两种常用的颜色表示方式(颜色模型)。 在 RGB 颜色模式下,Photoshop 的红(Red)、绿(Green)、蓝(Blue…...
MySQL:事务隔离级别详解
事务一共有四个特性:原子性、隔离性、持久性、一致性。简称ACID。本文所将就是其中的隔离性。 1、事务中因为隔离原因导致的并发问题有哪些? 脏读:当事务A对一个数据进行修改,但这个操作还未提交,但此时事务B就已经读…...
golang 根据URL获取文件名
只有一个文件地址,但是没有文件名称,文件地址:http://XXXXXXX/getfile.aspx?fileid999 但是系统需要把文件名称也写入到数据库 可以根据 resp.Header["Content-Disposition"] 获取文件名 resp.Header["Content-Disposition&q…...
【Javaweb程序设计】【C00163】基于SSM房屋中介服务平台(论文+PPT)
基于SSM房屋中介服务平台(论文PPT) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的房屋中介服务平台 本系统分为前台、管理员、用户3个功能模块。 前台:当游客打开系统的网址后,首先看到的就是首页界面。…...
ES文档索引、查询、分片、文档评分和分析器技术原理
技术原理 索引文档 索引文档分为单个文档和多个文档。 单个文档 新建单个文档所需要的步骤顺序: 客户端向 Node 1 发送新建、索引或者删除请求。节点使用文档的 _id 确定文档属于分片 0 。请求会被转发到 Node 3,因为分片 0 的主分片目前被分配在 …...
element plus使用问题
文章目录 element plusvue.config.js注意1、有时候会报错 not a function2、使用 ElMessage 报错3、 element plus 版本过高4、警告Feature flag VUE_PROD_HYDRATION_MISMATCH_DETAILS is not explicitly defined.5、报错 ResizeObserver loop completed with undelivered noti…...
洛谷p1036选数
[NOIP2002 普及组] 选数 题目描述 已知 n n n 个整数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn,以及 1 1 1 个整数 k k k( k < n k<n k<n)。从 n n n 个整数中任选 k k k 个整数相加,可分别得…...
【JavaSE篇】——数组的定义与使用
目录 本章的目标: 🎈数组的基本概念 🍭创建数组 🍭数组的初始化 🍭数组的使用 👉数组中元素访问 👉遍历数组 🎈数组是引用类型 🍭初始JVM的内存分布 …...
HCS 华为云Stack产品组件
HCS 华为云Stack产品组件 Cloud Provisioning Service(CPS) 负责laas的云平台层的部署和升级是laas层中真正面向硬件设备,并将其池化软件化的部件。 Service OM 资源池(计算/存储/网络)以及基础云服务(ECS/EVS/PC)的管理工具。 ManageOne ManageOne包括服务中心…...
四、MySQL之增删改
一、插入数据 1.1、VALUES的方式添加 使用这种语法一次只能向表中插入一条数据。 1.1.1、为表的所有字段按默认顺序插入数据 INSERT INTO 表名 VALUES (value1,value2,....);// 值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相…...
MQ面试题之Kafka
前言 前文介绍了消息队列相关知识,并未针对某个具体的产品,所以略显抽象。本人毕业到现在使用的都是公司内部产品,对于通用产品无实际经验,但是各种消息中间件大差不差,故而本次选择一个相对较熟悉的Kafka进行详细介绍…...
2023年CSDN年底总结-独立开源创作者第一年
2023年最大的变化,就是出来创业,当独立开源创作者,这一年发起SolidUI开源项目,把知乎重新开始运营起来。CSDN粉丝破万,CSDN博客专家和AI领域创作者。 2023年年度关键词:创业 https://github.com/CloudOrc…...
hardware simulation——编译框架优化
目录 介绍 修改前的最新代码和框架 学习和修改 最终版本 介绍 -------------------------------------------------------------------------------------------------------------------------- https://www.cnblogs.com/wittxie/p/9836097.html 上次那个虽然能完成基本…...
Leetcode刷题笔记题解(C++):1971. 寻找图中是否存在路径
思路: 1.建立图集,二维数组,path[0]里面存放的就是与0相连的节点集合 2.用布尔数组来记录当前节点是否被访问过,深度优先会使用到 3.遍历从起点开始能直接到达的点(即与起点相邻的点),判断那…...
ARM常用汇编指令
文章目录 前言一、处理器内部数据传输指令MOV: 将数据从一个寄存器复制到另一个寄存器。MRS: 将特殊寄存器(CPSR,SPSR)中的数据传给通用寄存器。MSR: 将通用寄存器中的数据传给特殊寄存器(CPSR,SPSR)。 二、存储器访问指令LDR:用于从内存中加…...
Qwen3-VL-8B场景应用:电商商品图自动描述生成,节省运营时间
Qwen3-VL-8B场景应用:电商商品图自动描述生成,节省运营时间 1. 电商运营的痛点与解决方案 在电商行业,商品详情页的描述文案直接影响转化率。传统模式下,运营人员需要手动为每张商品图撰写描述,这个过程耗时耗力且难…...
BLIP-Diffusion实战解析:如何通过预训练主题表示实现高效可控的图像生成
1. BLIP-Diffusion的核心创新点解析 第一次看到BLIP-Diffusion这个模型时,最让我惊讶的是它解决了一个困扰行业多年的难题:如何在不需要反复微调的情况下,让AI生成的图像既保持输入主题的特征,又能灵活响应文本指令。这就像教一个…...
PHP反序列化实战:手把手教你绕过CTF题中的字符检查与属性保护
PHP反序列化漏洞实战:从CTF解题到真实场景防御 在网络安全竞赛中,PHP反序列化漏洞一直是高频考点。这类漏洞不仅存在于CTF比赛中,也广泛存在于真实世界的Web应用中。本文将从一个典型CTF题目入手,深入剖析PHP反序列化的攻击手法与…...
VisionPro多模板匹配实战:CogPMAlignMultiTool从入门到精通(附完整代码)
VisionPro多模板匹配实战:CogPMAlignMultiTool从入门到精通 在工业视觉检测领域,多模板匹配技术正成为复杂场景下的关键解决方案。当单一模板无法覆盖产品多变的形态时,CogPMAlignMultiTool展现出强大的适应性。本文将带您深入掌握这一工具的…...
颠覆式消息留存方案:RevokeMsgPatcher全方位防撤回技术解析
颠覆式消息留存方案:RevokeMsgPatcher全方位防撤回技术解析 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitco…...
Glyph镜像实测分享:低质量图片文字识别,效果出乎意料
Glyph镜像实测分享:低质量图片文字识别,效果出乎意料 1. 引言:低质量图片文字识别的挑战 在日常工作和生活中,我们经常会遇到需要从低质量图片中提取文字的场景。无论是模糊的扫描件、低分辨率的截图,还是光线不佳的…...
C++ 编译器优化选项详解
C 编译器优化选项详解 在C开发中,编译器优化是提升程序性能的关键手段之一。通过合理配置优化选项,开发者可以在不修改代码逻辑的情况下,显著提高程序的运行效率,减少资源消耗。本文将深入探讨C编译器的优化选项,帮助…...
ExifToolGUI完全指南:让照片元数据管理效率倍增的实用技巧
ExifToolGUI完全指南:让照片元数据管理效率倍增的实用技巧 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 还在为照片位置管理烦恼?这款工具让地理标记效率提升300%。ExifToolGUI作为…...
保姆级教程:在Ubuntu 22.04上为i.MX6ULL交叉编译Qt 6.6.0(含完整CMake配置与避坑指南)
保姆级教程:在Ubuntu 22.04上为i.MX6ULL交叉编译Qt 6.6.0(含完整CMake配置与避坑指南) 第一次为嵌入式设备交叉编译Qt框架时,那种面对海量配置选项的茫然感我至今记忆犹新。特别是当开发板换成了NXP的i.MX6ULL这种资源受限的ARM处…...
DDrawCompat终极指南:让Windows 11完美运行经典DirectX老游戏
DDrawCompat终极指南:让Windows 11完美运行经典DirectX老游戏 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd…...
