首页 > 解决方案 > Vscode (Mac OS) 在运行任务时有不同的 $PATH

问题描述

我正在尝试编写一个自动任务来帮助我构建 go 插件。任务看起来像这样

        {
            "label": "compile wc.go",
            "type": "shell",
            "command": "go",
            "args": [
                "build",
                "-buildmode=plugin",
                "-gcflags='all=-N -l'",
                "../mrapps/wc.go"
            ],
            "options": {
                "cwd": "${workspaceFolder}/src/main",
            }
        }

当我运行它时,终端显示以下错误:

> Executing task: go build -buildmode=plugin -gcflags='all=-N -l' ../mrapps/wc.go <

/bin/bash: go: command not found
The terminal process "/bin/bash '-c', 'go build -buildmode=plugin -gcflags='all=-N -l' ../mrapps/wc.go'" failed to launch (exit code: 127).

当我运行 go env 命令时,它可以在集成终端上完美运行

(base) XIEs-MacBook-Pro:6.824 j$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
...enter code here

我一直在寻找答案,但没有。

我尝试了另一个任务

        {
            "label": "test",
            "type": "shell",
            "command": "echo $PATH",
            "options": {
                "cwd": "${workspaceFolder}/src/main"
            }
        }

它打印了我的 PATH,这与我在 bash 或集成终端中得到的明显不同。

而且我还尝试按任务打开一个python解释器,它产生一个python 2.7,肯定不是默认的(由哪个python)。

标签: govisual-studio-codeenvironment-variablesvscode-tasks

解决方案


您可能应该设置以便导出Run as login shell中的所有变量。bash_profile(rc)AFAIK 这里是设置"terminal.integrated.shellArgs.osx": ["-l"]


推荐阅读