在我用Go编写的Google App Engine项目中,我一直在使用例如
import "appengine/datastore"
很长一段时间成功并假设导入找到了我有App Engine SDK的地方 . 但是,现在我想使用来自Google的第三方库,它也使用App Engine中的东西,但是使用完整路径导入:
import "google.golang.org/appengine"
运行应用程序
$ goapp serve
失败,没有找到appengine:
...go/src/golang.org/x/oauth2/client_appengine.go:16: can't find import: "google.golang.org/appengine/urlfetch"
Can't find package "google.golang.org/appengine" in $GOPATH
显然我想使用相同的App Engine部件来解决其他问题 . 我的第一个通道是我想告诉第三方库使用App Engine SDK库,但我不知道它在导入中有不同的前缀 .
我应该在项目中使用所有App Engine导入的完整路径吗?这与我在谷歌针对Golang网页的App Engine上所阅读的内容完全相反 . 例如 . here .
Generally, what is the way to set up things so that it finds the right appengine libraries both in development and production on App Engine as well as from third party libraries?
在此先感谢您的帮助!
UPDATE
go get$GOPATH/src/google.golang.org/api/...
所以's not resolved but I have learned that there'是一个更改为fully qualified appengine import paths的更改 .
现在我的应用程序在本地运行,因为我引入了新的appengine以满足使用新导入路径的oauth库 .
go get google.golang.org/appengine
根据this:
如果您不想更新整个应用程序以使用新的App Engine软件包,则可以并行使用两组软件包,仅使用带有oauth2软件包的新软件包 .
实际上非常令人困惑,我不知道在App Engine上部署时可用的内容 . 有人知道吗?