原因
- 在 zsh 的配置文件
~/.zshrc(用subl ~/.zshrc查看)中,最下面有一行export PATH=$PATH:/usr/local/bin,需把它注释掉 /usr/local/bin是用户安装(如使用 brew)的程序的 bin 文件命令,以上代码通过export的方式把该目录添加到了环境变量中,但其实该目录已经在环境变量中了,不需要手动添加- 如果环境变量中
/usr/local/bin出现的位置早于/opt/miniforge3/bin就会导致该问题,系统找到第一个 python 解释器之后就停止寻找。导致不管怎么激活虚拟环境都始终还是处于默认的 python2.7 环境中
添加环境变量的方法
- 这写是环境变量中的默认路径
输入:cat /etc/paths /usr/local/bin /usr/bin /bin /usr/sbin /sbin- 编辑 zsh shell 的配置文件
~/.zshrc,在下方用 export 添加路径,然后再执行source ~/.zshr重新加载配置文件
# >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('/opt/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/opt/miniforge3/etc/profile.d/conda.sh" ]; then . "/opt/miniforge3/etc/profile.d/conda.sh" else export PATH="/opt/miniforge3/bin:$PATH" fi fi unset __conda_setup # <<< conda initialize <<< export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home export JRE_HOME=$JAVA_HOME/jre export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib # 添加新路径 # export PATH=$PATH:/tmp/my/path alias subl='open -a "Sublime Text"'- 在终端中临时添加,把以下路径放到环境变量的最前面,保证最高优先级。仅在本终端中有效,重启后无效。
export PATH="/opt/miniforge3/bin:$PATH"查看当前环境变量中有哪些路径
- 各个路径之间以
:分隔 - 排在最前面的路径优先级最高,路径是从左加载到右
echo $PATH /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin: /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin: /Users/admin/.nvm/versions/node/v22.15.1/bin:/opt/miniforge3/bin: /opt/miniforge3/condabin: /usr/local/bin: /usr/local/sbin: /usr/local/bin: /usr/bin: /bin: /usr/sbin:/sbin: /Applications/iTerm.app/Contents/Resources/utilities: /Users/admin/.local/bin- zshrs 中会加载它的插件
oh-my-zsh,因此可以通过该插件来配置终端,自定义 Git 命令等
疑问
- 为什么只有 VS Code 的终端会有问题
- 为什么
/usr/local/bin:被添加了两次,其中一次肯定是系统自带的,另一次不知道是在哪添加到的