M1 Mac Git安装Pyenv致Homebrew丢失、命令报错原因咨询
问题根因与修复方法
根因说明
两个异常均由zsh配置加载时序错误、PATH环境变量配置缺失导致,软件本身未损坏:
- 关于brew命令找不到、访达搜不到Homebrew目录:
M1芯片Mac的Homebrew默认安装在隐藏系统路径/opt/homebrew/bin下,之前可正常调用是因为旧版.zshrc中存在Homebrew自动写入的PATH注入配置。本次编辑.zshrc添加pyenv配置时,误覆盖/删除了Homebrew的PATH配置行,新终端启动时环境变量中无Homebrew路径,自然无法识别brew命令。访达默认不显示隐藏系统目录,因此搜不到/opt下的Homebrew文件夹,并非Homebrew被卸载,从之前的操作日志可确认brew二进制文件仍在原路径。 - 关于启动时报pyenv不存在、但进入终端后可正常调用pyenv:
你将pyenv的所有初始化配置都写入了.zshrc,其中eval "$(pyenv init --path)"属于登录shell加载阶段就要执行的配置,放在.zshrc中会出现加载时序问题:zsh解析.zshrc执行到eval行时,前面写入的pyenv PATH配置还未完成加载,当前执行上下文找不到pyenv命令就会抛出错误;等.zshrc全部加载完成后,pyenv路径已经成功注入PATH,进入交互终端后自然可以正常调用pyenv命令。
修复步骤
- 当前终端执行以下命令临时恢复brew可用性:
执行后输入export PATH="/opt/homebrew/bin:$PATH"brew --version可正常返回版本信息,即验证Homebrew文件无损坏。 - 编辑
~/.zshrc文件,在你添加的pyenv配置块最前面补上Homebrew的PATH配置,同时删除配置中的eval "$(pyenv init --path)"行,调整后的配置块如下:# Homebrew(M1)路径初始化 export PATH="/opt/homebrew/bin:$PATH" # pyenv配置 export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" - 编辑
~/.zprofile文件,加入以下内容(该文件为zsh登录阶段加载的配置文件,符合pyenv官方加载要求):eval "$(pyenv init --path)" - 执行以下命令让配置立即生效,后续重启iTerm2不会再出现相关报错:
source ~/.zshrc source ~/.zprofile - 若需在访达中查看Homebrew目录,按快捷键
Command+Shift+.即可显示所有隐藏文件/目录,之后可正常访问/opt/homebrew路径。
内容的提问来源于stack exchange,提问作者thleo
相关产品推荐
相关产品推荐

