在我用 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 网页上阅读的所有内容相反。例如。 here .
一般来说,如何设置才能在 App Engine 的开发和生产以及第三方库中找到正确的 appengine 库?
提前感谢您的帮助!
更新
我还可以看到,在添加第三方库并运行 go get 后,它会将各种内容提取到 $GOPATH/src/google.golang.org/api/.. .。那里有很多东西,还有 appengine 等等。似乎都是 Golang Google API...!
所以它没有解决,但我了解到有一个更改为 fully qualified appengine import paths .
现在我的应用在本地运行,因为我引入了新的应用引擎以满足使用新导入路径的 oauth 库。
go get google.golang.org/appengine
根据this :
如果您不想更新整个应用以使用新的 App Engine 软件包,您可以同时使用两组软件包,仅使用带有 oauth2 软件包的新软件包。
实际上非常困惑,我不知道在 App Engine 上部署时有什么可用的。有人知道吗?
最佳答案
就像您的更新所说的那样;您可以同时使用两种类型的导入(在同一 block 代码中),同时它们正在弃用旧 API 并完成新 API:
Most App Engine services are available with exactly the same API. A few APIs were cleaned up, and some are not available yet.
(source,距离您的一个链接稍远)
如果您需要同时使用 appengine 和 google.golang.org/appengine,那么您可以为导入路径设置别名以实现此目的。比如:
import (
oldAppengine "appengine"
"google.golang.org/appengine"
)
或者你想给他们起什么名字。
如果在部署时某些内容不可用,您会在构建时遇到错误,并且不会部署到 App Engine,因此您不必担心。
关于google-app-engine - 如何正确导入 Golang 应用引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32271148/
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为