Bry*_*ock 13 google-app-engine go
我在osX上设置Go App引擎时遇到了麻烦.google-cloud-sdk路径应该在GOROOT还是GOPATH?
我把google-cloud-sdk放在/ usr/local中
看起来有源代码:goroot /
/usr/local/google-cloud-sdk/platform/google_appengine/goroot/
Run Code Online (Sandbox Code Playgroud)
去环境
GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
Run Code Online (Sandbox Code Playgroud)
$ go get
package google.golang.org/appengine: cannot download, /usr/local/google-cloud-sdk/platform/google_appengine/goroot is a GOROOT, not a GOPATH. For more details see: 'go help gopath'
package google.golang.org/appengine/datastore: cannot download, /usr/local/google-cloud-sdk/platform/google_appengine/goroot is a GOROOT, not a GOPATH. For more details see: 'go help gopath'
Run Code Online (Sandbox Code Playgroud)
当我尝试将PATH更改为include/src时:
GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src"
Run Code Online (Sandbox Code Playgroud)
$ go get
package google.golang.org/appengine: mkdir /usr/local/google-cloud-sdk/platform/google_appengine/goroot/src/src: permission denied
package google.golang.org/appengine/datastore: cannot find package "google.golang.org/appengine/datastore" in any of:
/usr/local/go/src/google.golang.org/appengine/datastore (from $GOROOT)
/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src/src/google.golang.org/appengine/datastore (from $GOPATH)
Run Code Online (Sandbox Code Playgroud)
我将google-cloud-sdk的路径添加到GOROOT:
export GOROOT="/usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot"
Run Code Online (Sandbox Code Playgroud)
GO似乎不喜欢GOROOT中的多条路径:
$ go get
go: cannot find GOROOT directory: /usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot
Run Code Online (Sandbox Code Playgroud)
在将源复制到/ usr/local之后,我确实运行了./install.sh脚本
附加的PATH添加并没有解决我遇到的错误.
我看到了这个答案:go和appengine的测试用例
但它是从5年前开始的,它似乎很笨拙/笨拙.在5年内,似乎会有一个更优雅的解决方案,即复制单个目录并创建符号链接.
编辑**********************
mv /usr/local/google-cloud-sdk/ ~/go/
然后从.bash_profile删除GOPATH和GOROOT
然后我跑了./install.sh
我试图跑'去得':
$ go get
go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH
Run Code Online (Sandbox Code Playgroud)
由于失败,我添加了代码工作目录的路径,并将google-cloud-sdk的路径添加到PATH:
export GOPATH = "/Users/Bryan/work/gocode/skincarereview"
export PATH=$HOME/google-cloud-sdk:$PATH
Run Code Online (Sandbox Code Playgroud)
go get
使用相同的消息失败:
$ go get
go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH
For more details see: 'go help gopath'
Run Code Online (Sandbox Code Playgroud)
它既不是$ GOROOT也不是$ GOPATH.只需将其解压缩到$ HOME目录并运行安装程序即可.如有必要,可以将此行添加到您的$ PATH中.bash_profile
.
export PATH=$HOME/google-cloud-sdk:$PATH
Run Code Online (Sandbox Code Playgroud)
请务必使用https://cloud.google.com/appengine/docs/standard/go/download抓取golang SDKgcloud components install app-engine-go
请勿更改您的路径以包含src目录google-cloud-sdk/platform/google_appengine/goroot/src
.这将打破局面.您将$ GOPATH保留为正常安装.使用App Engine SDK for Go会自动使用该目录中的源代码而无需任何操作.
此外,除非您计划从源代码编译新的Go版本(如在该语言的新版本中),否则不应手动更改$ GOROOT.它会自动为你设置合适的$ GOROOT.https://dave.cheney.net/2013/06/14/you-dont-need-to-set-goroot-really
如果您的安装超出了理由(发生在我身上),只需删除cloud SDK以及$ PATH中对它的任何引用.也完全卸载常规Go安装.然后从头开始.安装围棋,解压谷歌云-SDK,运行安装程序(如果需要添加到$ PATH) gcloud components install app-engine-go
.瞧.
在为App Engine开发时,你的go源会进入你的REGULAR $ GOPATH.他们不要去google-cloud-sdk/...
任何地方.要在本地运行dev_appserver,请运行dev_appserver.py [path-to-source]
给定路径包含代码和app.yaml的位置.我经常cd
进入我的项目路径(例如cd $HOME/go/src/myproject
)并运行dev_appserver.py ./
.https://cloud.google.com/appengine/docs/standard/go/tools/using-local-server
这里介绍了部署.https://cloud.google.com/appengine/docs/standard/go/tools/uploadinganapp
编辑:文件夹结构.
$ GOPATH = $ HOME/go
google-cloud-sdk文件夹的位置
归档时间: |
|
查看次数: |
1402 次 |
最近记录: |