Visual Studio Code 中的 PATH 变量与 Mac 上的终端不同

问题描述 投票:0回答:3

Visual Studio Code 中集成终端中的 PATH 变量与终端应用程序中的变量不同。我该如何改变它?

我正在使用来自英特尔 oneAPI 的英特尔 Python 分发版,并且我在我的

setvars.sh
中调用了
.zshrc
脚本和 conda 初始化代码。在 Mac 终端中,我可以正确激活 conda 环境。但是,在 VSC 的集成终端中,
/usr/bin
文件夹列在 conda 文件夹之前,因此会调用系统 Python 解释。

编辑:我最初认为 Python 的英特尔发行版与此有关,但常规 Anaconda 发行版也会出现同样的问题。

visual-studio-code conda intel-oneapi
3个回答
4
投票

看起来问题在于 Visual Studio Code 从终端继承了 PATH,但不知何故它重新排列了文件夹的顺序,这使 Anaconda 激活脚本感到困惑。由于我找不到解决方案,我通过在 Anaconda 初始化脚本之后将以下几行添加到我的

.zshrc
来实现解决方法:

# Workaround for Visual Studio Code integrated terminal
if [[ -v VSCODE_GIT_IPC_HANDLE ]]; then
    conda deactivate
    conda activate
fi

0
投票

我不能 100% 确定正确的行为,因为我不使用 Mac,但您可以尝试从具有正确环境的终端启动 VS Code。 确保

code
在您的路径中,使用 https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line

然后确保计算机上的所有 VScode 会话均已关闭,并通过终端中的

code
启动它。


0
投票

有这个问题,没有答案对我来说是正确的。

此 github 问题上找到的快速修复

"terminal.integrated.inheritEnv": false

这是我完整的 vscode settings.json (如果有人没有看到在哪里或如何放置它):

{
    "window.zoomLevel": 1,
    "terminal.integrated.defaultProfile.osx": "zsh",
    "terminal.integrated.inheritEnv": false,
    "terminal.integrated.autoReplies": {

    },
    "terminal.integrated.automationProfile.osx": {
        
    }
}

重新打开一个新终端,它就可以工作了(至少它在 vscode 和我的终端中打开了相同版本的 python)。

© www.soinside.com 2019 - 2024. All rights reserved.