核心是控制PATH查找顺序和明确命令绑定目标,需用which、type-a、echo$PATH确认实际调用路径,通过修改~/.zshrc中PATH优先级或设alias来安全切换版本,避免覆盖系统命令。
核心是控制 path 查找顺序和明确命令绑定目标,不是删旧装新。
确认当前实际调用的是哪个版本
别只看 python --version 或 ruby --version,先查路径:
-
which python和which python3—— 看终端真正执行的二进制在哪 -
type -a ruby—— 列出所有可找到的ruby命令(含 alias、function、bin 文件) -
echo $PATH—— 检查路径顺序,靠前的目录优先匹配
修正 PATH 优先级(推荐方式)
macOS 默认 shell 是 zsh,配置文件为 ~/.zshrc。编辑它,把你想用的版本路径放在最前面:
- Pkg 安装的 Python(如 3.12)路径通常是:
export PATH="/Library/Frameworks/Python.framework/Versions/3.12/bin:$PATH" - Homebrew 安装的 Ruby(如 3.3)路径通常是:
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"(Apple Silicon)
或export PATH="/usr/local/opt/ruby/bin:$PATH"(Intel) - 改完后运行
source ~/.zshrc生效,再验证which python3和which ruby
避免直接覆盖系统命令名
不建议用 sudo ln -sf 强行替换 /usr/bin/python 或 /usr/bin/ruby,这些是系统保护路径,SIP 会阻止,且可能影响 macOS 自身工具链。
- 用
alias更安全:在~/.zshrc中加alias py3='/Library/Frameworks/Python.framework/Versions/3.12/bin/python3'alias rb3='/opt/homebrew/opt/ruby/bin/ruby' - 或者统一使用带版本号的命令,如
python3.12、ruby3.3,它们通常已由安装器注册好
Ruby 特别注意:不要混用包管理器
Homebrew 的 Ruby 和 rbenv/rvm 管理的 Ruby 会互相干扰:
立即学习“Python免费学习笔记(深入)”;
- 如果用了
rbenv,确保已执行rbenv init并按提示把初始化代码加入~/.zshrc - 检查
rbenv versions和rbenv global 3.3.0是否生效 - 若 Homebrew 的
/opt/homebrew/bin在PATH中排在rbenv的 shims 目录(如~/.rbenv/shims)之前,rbenv就会失效 —— 调整顺序即可


















