为什么 google-cloud-sdk go-app-stager 无法识别 GOPATH?

Why is GOPATH not recognized by google-cloud-sdk go-app-stager?

当我尝试更新我的 appengine 项目时,出现错误。

$ sudo gcloud app deploy
ERROR: (gcloud.app.deploy) Staging command [/usr/local/google-cloud-sdk/platform/google_appengine/goroot-1.6/bin/go-app-stager /Users/baz/app/app.yaml /tmp/tmpSZLK/tmpIQ4] failed with return code [1].

------------------------------------ STDOUT ------------------------------------
------------------------------------ STDERR ------------------------------------
2017/07/08 16:22:06 failed analyzing /Users/baz/app: cannot find package "bitbucket.org/foo/bar" in any of:
    ($GOROOT not set)
    ($GOPATH not set)
GOPATH: 

$ echo $GOPATH
/Users/baz/go
$ go env GOPATH
/Users/baz/go

很明显 GOPATH 已设置(我将其导出到我的 .bash_profile)。

TL;DR - 不要使用 sudo 部署应用程序。

更长的版本

您正在使用 sudo 运行 执行 gcloud app deploy 命令。当 运行 以 root 用户身份执行命令时,sudo 命令的性质不会保留当前的环境变量集。

尝试在没有 sudo 的情况下部署您的 App Engine 应用程序:

gcloud app deploy

如果你确实需要 运行 你命令为 sudo(这是你的设置不知何故被破坏的味道),你可以看看 this post。虽然,我建议研究 运行 在没有 sudo.

的情况下执行命令的可能性