如何正确导入 Golang appengine?

在我用 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 导入使用完整路径吗?这与我在 Google 的 App Engine for Golang 网页上阅读的所有内容相反。例如这里

通常,设置事物的方法是什么,以便在 App Engine 的开发和生产中以及从第三方库中找到正确的 appengine 库?

在此先感谢您的帮助!

更新

我还可以看到,在添加第三方库并运行后,将go get各种内容提取到$GOPATH/src/google.golang.org/api/.... 那里有很多东西,还有 appengine 等等。似乎都是 Golang Google APIs ......!

所以它没有解决,但我了解到有一个变化,改变了完全合格的 appengine 导入路径

现在,当我拉入新的 appengine 以满足使用新导入路径的 oauth 库时,我的应用程序在本地运行。

go get google.golang.org/appengine

根据这个

如果您不想更新整个应用程序以使用新的 App Engine 包,您可以并行使用两组包,仅使用带有 oauth2 包的新包。

实际上非常混乱,我不知道在 App Engine 上部署时有什么可用。有人知道吗?


呼如林
浏览 132回答 2
2回答

收到一只叮咚

如果您使用的是 gosdk,只需goapp get在与.go文件相同的目录中运行,它就会下载依赖项并将其安装到您的 gosdk 安装中。然后再次部署该应用程序,它应该可以毫无问题地编译。当它工作时没有提示,文件将被下载到 gosdk\gopath\src完成后会有一条警告信息,可以忽略:go install: GOPATH 外的目录 C:\your_current_directory 没有安装位置有关更多详细信息,请参阅:go help gopath
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go