Mac M1 Big Sur下iTerm执行conda activate报(eval):10 unmatched '错误求解
解决方案
根因说明
报错(eval):10: unmatched '由两个问题共同导致:
- PATH变量存在非法转义单引号:输出的PATH内容中
/Users/san/.local/bin\'段包含多余转义单引号,shell解析时报语法错误 - 存在两个miniforge实例冲突:手动安装的
/Users/san/miniforge3和brew安装的/opt/homebrew/Caskroom/miniforge路径同时存在,导致conda初始化逻辑混乱
操作步骤
1. 卸载冗余的brew版miniforge
当前conda的base环境已正常定位到手动安装的/Users/san/miniforge3,brew安装的miniforge属于冗余实例,执行命令卸载:brew uninstall miniforge
卸载完成后确认/opt/homebrew/Caskroom/miniforge目录已被完全删除。
2. 修复zsh配置文件
PATH的错误内容来自zsh启动配置文件,按以下步骤修改:
- 打开zsh主配置文件:
open ~/.zshrc,同时检查~/.zprofile、~/.bash_profile两个文件,清理所有旧的conda相关配置 - 删除所有包含以下内容的配置行:
- 指向
/opt/homebrew/Caskroom/miniforge的路径 - 包含
/Users/san/.local/bin\'的错误PATH配置
- 指向
- 新增正确的conda初始化配置:
# >>> conda initialize >>> __conda_setup="$('/Users/san/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/Users/san/miniforge3/etc/profile.d/conda.sh" ]; then . "/Users/san/miniforge3/etc/profile.d/conda.sh" else export PATH="/Users/san/miniforge3/bin:$PATH" fi fi unset __conda_setup # <<< conda initialize <<<
- 保存修改后执行命令生效配置:
source ~/.zshrc
3. 验证修复效果
- 执行
echo $PATH,确认无多余转义单引号、无brew版miniforge的残留路径 - 执行
conda activate base测试base环境激活,正常激活后再测试conda activate TFmacos等其他自定义环境 - 所有环境激活正常后,可手动删除之前brew版miniforge生成的冗余环境目录
/opt/homebrew/Caskroom/miniforge
内容的提问来源于stack exchange,提问作者San San
相关产品推荐
相关产品推荐

