
Ubuntu 系统中存在 /usr/bin/python3(3.12.3)和 /usr/local/bin/python3(3.13.3)两个 Python 3 可执行文件,通过调整 PATH 环境变量顺序,可确保终端默认调用指定版本。
ubuntu 系统中存在 `/usr/bin/python3`(3.12.3)和 `/usr/local/bin/python3`(3.13.3)两个 python 3 可执行文件,通过调整 `path` 环境变量顺序,可确保终端默认调用指定版本。
在 Ubuntu 24.04 中,python3 --version 返回 3.13.3 而 python --version 返回 3.12.3,说明系统中实际存在两个独立安装的 Python 3 解释器:
-
/usr/bin/python3→ 系统包管理器(apt)安装的官方版本(3.12.3) -
/usr/local/bin/python3→ 手动编译或第三方安装的较新版本(3.13.3)
Shell 查找命令时严格按 PATH 环境变量中目录的从左到右顺序匹配首个可执行文件。当前 python3 命令能调用 3.13.3,表明 /usr/local/bin 已在 /usr/bin 之前;但 python(无后缀)仍指向旧版,通常是因为 /usr/bin/python 是一个独立符号链接(如指向 python3.12),未受 PATH 调整影响。
✅ 推荐解决方案:统一通过 PATH 优先级控制,默认使用新版
运行以下命令,将 /usr/local/bin 提至 PATH 最前端:
export PATH=/usr/local/bin:$PATH
验证效果:
which python3 # 应输出 /usr/local/bin/python3 python3 --version # 应显示 3.13.3
⚠️ 注意事项:
- 此设置仅对当前终端会话生效。若需永久生效,请将该行添加至 shell 配置文件:
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc source ~/.bashrc
- 若使用
zsh(如 Ubuntu 24.04 默认终端可能已切换),请改写入~/.zshrc并执行source ~/.zshrc。 - 不建议删除或硬链接覆盖
/usr/bin/python*—— 这可能破坏系统工具(如apt、update-manager)依赖的 Python 运行环境。 - 如需为特定项目固定 Python 版本,更安全的做法是使用
pyenv或虚拟环境(python3.13 -m venv myenv),而非全局修改系统命令解析行为。
总结:PATH 顺序是 Linux 下管理多版本二进制文件的核心机制。优先前置 /usr/local/bin 是兼顾新版功能与系统稳定性的标准实践,无需卸载旧版,也无需修改系统级链接。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











