mur*_*att 16 google-app-engine dependencies go
在用Go编写的Google App Engine项目中,我一直在使用eg
import "appengine/datastore"
Run Code Online (Sandbox Code Playgroud)
很长一段时间成功并假设导入找到了我有App Engine SDK的地方.但是,现在我想使用来自Google的第三方库,它也使用App Engine中的东西,但是使用完整路径导入:
import "google.golang.org/appengine"
Run Code Online (Sandbox Code Playgroud)
运行应用程序
$ goapp serve
Run Code Online (Sandbox Code Playgroud)
失败,没有找到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
Run Code Online (Sandbox Code Playgroud)
显然我想使用相同的App Engine部件来解决其他问题.我的第一个通道是我想告诉第三方库使用App Engine SDK库,但我不知道它在导入中有不同的前缀.
我应该在项目中使用所有App Engine导入的完整路径吗?这与我在谷歌针对Golang网页的App Engine上所阅读的内容完全相反.比如这里.
一般来说,设置东西的方式是什么,以便在App Engine和第三方库的开发和生产中找到合适的appengine库?
在此先感谢您的帮助!
UPDATE
我还可以看到,在添加第三方库并运行go get
它之后,将所有类型的东西都输入$GOPATH/src/google.golang.org/api/...
.那里有很多东西和appengine等等.似乎是所有Golang Google API ......!
所以它没有得到解决,但我了解到有一个变化会改变为完全合格的appengine导入路径.
现在我的应用程序在本地运行,因为我引入了新的appengine以满足使用新导入路径的oauth库.
go get google.golang.org/appengine
Run Code Online (Sandbox Code Playgroud)
根据这个:
如果您不想更新整个应用程序以使用新的App Engine软件包,则可以并行使用两组软件包,仅使用带有oauth2软件包的新软件包.
实际上非常令人困惑,我不知道在App Engine上部署时可用的内容.有人知道吗?
ada*_*m_0 10
就像你的更新说的那样; 您可以并行使用这两种类型的导入(在相同的代码块中),同时他们弃用旧的API并完成新的API:
大多数App Engine服务都提供完全相同的API.清理了一些API,有些还没有.
(来源,从你的一个链接稍微向下)
如果您需要同时使用两者appengine
,google.golang.org/appengine
则可以使用别名导入路径来实现此目的.就像是:
import (
oldAppengine "appengine"
"google.golang.org/appengine"
)
Run Code Online (Sandbox Code Playgroud)
或者无论你想给它们命名什么.
如果部署时某些内容不可用,您将在构建时遇到错误,并且不会部署到App Engine,因此您不必担心它.
归档时间: |
|
查看次数: |
5829 次 |
最近记录: |