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

时间:2017-07-08 23:32:00

标签: google-app-engine google-app-engine-go

当我尝试更新我的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中)。

1 个答案:

答案 0 :(得分:2)

TL; DR - 请勿使用sudo部署应用。

更长的版本

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

尝试在没有sudo的情况下部署您的应用引擎应用:

gcloud app deploy

如果你确实需要以sudo命令运行命令(这是你的设置被破坏的气味),你可以查看this post。虽然,我建议考虑在没有sudo的情况下运行命令的可能性。