visual-studio-codepathcondazsh

why vscode zsh's PATH is different from iterm(zsh)'s PATH


My vscode zsh's PATH is:

(base) ➜ ~ echo $PATH | tr ":" "\n"
/opt/homebrew/bin
/usr/local/bin
/System/Cryptexes/App/usr/bin
/usr/bin
/bin
/usr/sbin
/sbin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
/Users/myname/miniconda3/bin
/Users/myname/miniconda3/condabin
/opt/homebrew/bin

Iterm(zsh)'s PATH is:

(base) ➜ ~ echo $PATH | tr ":" "\n"
/Users/myname/miniconda3/bin
/Users/myname/miniconda3/condabin
/opt/homebrew/bin
/usr/local/bin
/System/Cryptexes/App/usr/bin
/usr/bin
/bin
/usr/sbin
/sbin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin
/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin

As a result, in vscode zsh, which pip3 points to /opt/homebrew/bin/pip3 even though conda environment is activated

(base) ➜ ~ which pip3
/opt/homebrew/bin/pip3

Releated zshrc code is

export PATH=/opt/homebrew/bin:$PATH
alias pip=pip3

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/myname/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/Users/myname/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/myname/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/Users/mgname/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

I don't know what to do. I expect the PATH is same, and /Users/myname/miniconda3/bin/pip3 found first


Solution

  • You will need to set

    terminal.integrated.inheritEnv
    

    to false, so the env will not be inherited.