在VS Code中设置全局$ PATH环境变量

时间:2017-05-15 15:44:36

标签: visual-studio-code

我在$PATH(在Mac上)定义了一个自定义~/.bash_profile环境变量,如下所示:

PATH="$HOME/.cargo/bin:$PATH:$HOME/bin"

但是,VS Code当然不会运行我的.bash_profile,因此它没有自定义路径。事实上,如果我切换开发者工具并检查process.env.PATH,它似乎甚至没有/usr/local/bin

如何在VS Code中全局设置$PATH环境变量?

(我想全局设置,不是按项目或按任务设置,因为我维护了很多小包。)

9 个答案:

答案 0 :(得分:18)

如果您只需要在集成终端中设置$PATH,则可以使用VS Code的terminal.integrated.env.<platform>变量(在版本1.15中添加),例如

"terminal.integrated.env.osx": {
  "PATH": "...:/usr/bin:/bin:..."
}

要查看系统的$PATH,请在Terminal.app中输入echo "$PATH",然后将其复制并粘贴到上面的设置代码段中。

至于在VS Code中让$PATH可用无处不在的,那么它将会 被调用二进制文件的扩展程序使用,到目前为止我发现的唯一解决方法是:

  1. 配置shell(默认为bash)以获得所需的$PATH。例如,我的~/.bash_profile包含以下行:

    PATH="$PATH:$HOME/bin"
    
  2. 在VS Code中,如果您之前没有这样做,请按⇧⌘P并输入install 'code' command

  3. 退出VS代码。

  4. 单击Dock中或启动板中的图标启动VS Code not ,但打开Terminal.app并键入code。您的新设置路径将在VS代码中处于活动状态,直到您退出为止。

  5. 如果VS代码重新启动,例如由于升级,$PATH将重置为系统默认值。在这种情况下,请退出VS Code并通过键入code重新启动它。

答案 1 :(得分:2)

在:

echo "abcdef" > a.txt
echo "12345" >> a.txt

添加到 JSON 文件:

> Preferences: Open Settings (JSON)

为了检查它是否有效,请在您的 VS Code 终端中执行:

"terminal.integrated.env.windows": {
    "PATH": "${env:PATH}"
},

答案 2 :(得分:0)

获取代码以加载现有的〜/ .bash_profile是最好的。我认为这里的文档是相关的参考: https://code.visualstudio.com/docs/editor/integrated-terminal#_linux-os-x

  

通常,$ SHELL是类Unix系统的主要shell,所以你   可能不想改变shell。你可以将参数传递给   shell启动时。

     

例如,要启用运行bash作为登录shell(运行   .bash_profile),传递-l参数(带双引号):

     

// Linux "terminal.integrated.shellArgs.linux": ["-l"]

     

// OS X "terminal.integrated.shellArgs.osx": ["-l"]

虽然看起来该设置是我当前的VS Code(OS X)设置的默认设置。集成终端运行我的〜/ .bash_profile而不对配置进行任何更改。也许尝试添加echo Executing .bash_profile...以测试在代码中打开新终端时它是否正在运行。

答案 3 :(得分:0)

我正在使用ubuntu 18.04。我遇到了类似的问题,定义了环境变量,并且终端知道$ PATH,但是当我尝试使用golang进行调试时,在$ PATH变量中找不到go库。

因此,要解决此问题,我从ubuntu软件中卸载了默认版本,并按照以下说明进行了手动安装:

https://code.visualstudio.com/docs/setup/linux

对我有用。

答案 4 :(得分:0)

在您的〜/ .bash_profile中添加以下内容:

launchctl setenv PATH $HOME/.cargo/bin:$PATH:$HOME/bin

或在需要时运行Bash脚本,例如:

#!/bin/bash
set -Eeuxo pipefail

proj_path=$( cd $( dirname ${BASH_SOURCE[0]} ) && pwd )
launchctl setenv PATH $proj_path/bin:${PATH:-}

答案 5 :(得分:0)

问题是Visual Studio代码。

无论您如何在shell中设置PATH变量,在某些情况下Visual Studio Code都不会继承您的PATH设置。如果您正在使用LaunchBar之类的应用程序启动器来启动Visual Studio Code,则您的PATH变量将不会被继承。

这是系统范围的修补程序:

在/etc/paths.d目录中,使用您的Unix用户名创建一个文件。在该文件中,放置Visual Studio Code需要工作的其他路径。就我而言,这是我的/etc/paths.d文件的内容:

/usr/ucb /opt/local/bin /opt/local/sbin ~/go/bin

注意:您的/etc/paths.d文件将在系统范围内处理。由于大多数系统是单用户的,因此对于大多数开发人员而言这不是问题。

答案 6 :(得分:0)

我正在与CMake一起在macOS上使用vscode进行C / C ++开发。

vscode扩展 CMake Tools 允许通过配置属性cmake.configureEnvironmentcmake.buildEnvironmentcmake.environment(分别在CMake配置阶段起作用,构建阶段,以及两者都-see docs)。

然后,您可以通过将以下代码段添加到用户或项目settings.json中来使用自定义路径扩展系统PATH:

"cmake.environment": {
    "PATH": "~/.myTool/bin:${env:PATH}"
},

答案 7 :(得分:0)

在我的案例中(Linux Mint 19.3 Cinnamon,通过snap安装VS代码)的窍门是将我附加的PATH放入〜/ .profile中。由于此文件是在用户会话开始时读取的,因此请不要忘记在编辑此文件后注销/登录或重新启动。

答案 8 :(得分:0)

由于这是“ VS代码路径”的变体形式在Google上搜索量最高的结果,因此我将在此处添加答案。

我正在运行Linux,而我的问题是VS Code找不到构建我的项目所需的一些可执行文件。我从快速启动器(ALT + F2)而不是从终端运行VS Code。我尝试在许多不同的地方修改PATH变量,但似乎无法正确处理。

最后,将正确的PATH放置在〜/ .zshenv内是可行的。这是因为.zshenv是唯一从非交互式Shell命令执行中获取的文件,例如从VS Code内部获取(更详细的解释,请点击https://unix.stackexchange.com/questions/71253/what-should-shouldnt-go-in-zshenv-zshrc-zlogin-zprofile-zlogout