使用最新的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
答案 0 :(得分:2)
使用
更新http2包go get -u golang.org/x/net/http2
-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 $