安装Anaconda后iTerm报错:(eval):66: command not found: dirname
解决Anaconda安装后
(eval):66: command not found: dirname报错 问题原因
报错本质是执行conda初始化脚本时,系统PATH还未包含/usr/bin(dirname所在路径)。你的.zshrc里PATH配置重复且顺序混乱,导致conda初始化代码(位于eval块中)执行时,找不到系统默认的dirname命令。
解决方案
1. 备份并整理.zshrc的PATH配置
先备份原有配置,避免误操作:
cp ~/.zshrc ~/.zshrc.bak
打开.zshrc,替换原有PATH相关配置为以下内容(确保系统默认路径优先,再添加第三方工具路径):
# 系统核心路径优先,确保dirname等基础命令可被找到 export PATH=/usr/bin:/bin:/usr/sbin:/usr/local/bin:$PATH # 添加Homebrew路径(适配M1/M2芯片,Intel芯片可改为/usr/local/bin) export PATH=/opt/homebrew/bin:$PATH # 添加Anaconda路径 export PATH=/opt/anaconda3/bin:$PATH # 关闭base环境自动激活 export CONDA_AUTO_ACTIVATE_BASE=false
2. 调整conda初始化代码的位置
检查.zshrc中是否存在类似以下的conda初始化代码块:
__conda_setup="$('/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/opt/anaconda3/etc/profile.d/conda.sh" ]; then . "/opt/anaconda3/etc/profile.d/conda.sh" else export PATH="/opt/anaconda3/bin:$PATH" fi fi unset __conda_setup
如果有,将这段代码移动到所有PATH配置的下方,确保执行初始化脚本时,系统PATH已经包含/usr/bin。
3. 生效配置并验证
保存.zshrc后,执行命令使配置生效:
source ~/.zshrc
重启iTerm,检查是否还会出现command not found: dirname的报错。如果问题依旧,重新执行conda初始化:
/opt/anaconda3/bin/conda init zsh
之后再次检查.zshrc的PATH顺序和初始化代码位置,重复上述步骤即可。
内容的提问来源于stack exchange,提问作者Climbing_holic
相关产品推荐
相关产品推荐

