You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04切换Python3版本引发Netplan异常及APT依赖Python3.8的问题咨询

Ubuntu 20.04切换Python3版本引发Netplan异常及APT依赖Python3.8的问题咨询

嗨,我来帮你梳理这个问题的原因和解决思路哈~

为什么切换到Python3.10后Netplan会报错?

Ubuntu 20.04发行版自带的Netplan工具是基于系统默认的Python3.8开发和测试的,它的内部脚本依赖Python3.8的特定库版本、API或者语法特性。当你通过update-alternatives --config python3把系统默认的python3指向3.10时,Netplan调用的Python环境发生了变化:

  • 有些在Python3.8里可用的模块,可能在3.10中被移除、重命名或者修改了API;
  • 部分语法兼容性问题也可能导致Netplan的脚本执行失败。
    所以切换后Netplan出现异常是很正常的——系统级工具和默认Python版本是强绑定的。

为什么卸载后重装Netplan,Python3.8总会被装回来?

这是APT包管理系统的依赖解析机制导致的:

  • Ubuntu 20.04的官方软件源中,Netplan的包依赖明确指定了系统默认的Python3.8(因为发行版发布时Python3.8是官方支持的系统级Python版本);
  • 当你尝试安装Netplan时,APT会自动检查所有依赖项,发现缺少Python3.8就会自动把它作为依赖包安装回来,这是为了保证Netplan能在符合要求的环境下正常运行。

推荐的解决办法

  • 不要修改系统默认的python3指向:保留python3指向3.8,给Python3.10单独设置调用方式。比如直接用python3.10命令调用,或者在~/.bashrc里添加别名:
    alias py310='/usr/bin/python3.10'
    
    之后重启终端,就能用py310来调用Python3.10了。
  • 使用虚拟环境隔离Python版本:如果需要在特定项目中使用Python3.10,建议用虚拟环境来隔离,完全不会影响系统级的Python环境:
    # 创建Python3.10的虚拟环境
    python3.10 -m venv my_project_env
    # 激活虚拟环境
    source my_project_env/bin/activate
    
    激活后,当前终端里的python和pip都会指向虚拟环境里的Python3.10,退出环境只需执行deactivate命令。

备注:内容来源于stack exchange,提问作者定坤宋

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:54:29