使用grpc和最新的appengine sdk(golang 1.4.2)

时间:2016-03-03 18:34:16

标签: google-app-engine go

使用最新的appengine SDK,即版本1.4.2:

由于依赖于http2,

go get google.golang.org/grpc失败,显然无法使用当前的appengine sdk版本。似乎http2的东西只能从1.6 +中获得:

  来自Go 1.6及更高版本的

(参考:https://godoc.org/golang.org/x/net/http2

调用go get golang.org/x/net/http2没有解决错误

虽然我最初在处理谷歌云存储时发现了这一点,但似乎在整个库中使用了它:https://github.com/GoogleCloudPlatform/gcloud-golang/search?utf8=%E2%9C%93&q=grpc

2 个答案:

答案 0 :(得分:2)

使用

更新http2包
go get -u golang.org/x/net/http2
来自go命令(https://golang.org/cmd/go/)的描述:

  

-u标志指示get使用网络更新named   包及其依赖项。默认情况下,get使用网络   检查丢失的包但不使用它来查找更新   现有的包裹。

答案 1 :(得分:0)

这在某种程度上证明了我的本地配置问题:

仅供记录......

davidk-osx:桌面davidk $ more~ / .bash_profile

  

导出GOROOT = / usr / local / go   export PATH = $ PATH:$ GOROOT / bin   export GOPATH = / Users / davidk / Documents / golang   export PATH = $ GOPATH / bin:$ PATH

davidk-osx:桌面davidk $ go版

  

go go go.6.6 darwin / amd64

davidk-osx:桌面davidk $ / Applications / go_appengine / goapp版

  

go go go.4.4.2(appengine-1.9.33)darwin / amd64

davidk-osx:桌面davidk $ mkdir ./TEMP_GOPATH davidk-osx:桌面davidk $ export GOPATH = / Users / davidk / Desktop / TEMP_GOPATH davidk-osx:桌面davidk $ go go google.golang.org/grpc davidk-osx:桌面davidk $ go go google.golang.org/cloud/storage

(即一切都很好,但随后......)

davidk-osx:桌面davidk $ export GOPATH = / Users / davidk / Documents / golang davidk-osx:桌面davidk $ go get google.golang.org/grpc

  

#google.golang.org/grpc/transport   ../Documents/golang/src/google.golang.org/grpc/transport/http2_client.go:678:undefined:http2.MetaHeadersFrame   ../Documents/golang/src/google.golang.org/grpc/transport/http2_client.go:774:undefined:http2.MetaHeadersFrame   ../Documents/golang/src/google.golang.org/grpc/transport/http2_server.go:140:undefined:http2.MetaHeadersFrame   ../Documents/golang/src/google.golang.org/grpc/transport/http2_server.go:253:undefined:http2.MetaHeadersFrame   ../Documents/golang/src/google.golang.org/grpc/transport/http_util.go:279:f.fr.ReadMetaHeaders undefined(类型* http2.Framer没有字段或方法ReadMetaHeaders)   davidk-osx:桌面davidk $