我在 osX 上设置 Go App 引擎时遇到问题。 google-cloud-sdk 路径应该在 GOROOT 还是 GOPATH 中?
我把 google-cloud-sdk 放在/usr/local
貌似有源码在:goroot/
/usr/local/google-cloud-sdk/platform/google_appengine/goroot/
去环境
GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
$ 去获取
package google.golang.org/appengine: cannot download, /usr/local/google-cloud-sdk/platform/google_appengine/goroot is a GOROOT, not a GOPATH. For more details see: 'go help gopath'
package google.golang.org/appengine/datastore: cannot download, /usr/local/google-cloud-sdk/platform/google_appengine/goroot is a GOROOT, not a GOPATH. For more details see: 'go help gopath'
当我尝试将 PATH 更改为包含/src 时:
GOPATH="/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src"
$ 去拿
package google.golang.org/appengine: mkdir /usr/local/google-cloud-sdk/platform/google_appengine/goroot/src/src: permission denied
package google.golang.org/appengine/datastore: cannot find package "google.golang.org/appengine/datastore" in any of:
/usr/local/go/src/google.golang.org/appengine/datastore (from $GOROOT)
/usr/local/google-cloud-sdk/platform/google_appengine/goroot/src/src/google.golang.org/appengine/datastore (from $GOPATH)
我将 google-cloud-sdk 的路径附加到 GOROOT:
export GOROOT="/usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot"
GO 似乎不喜欢 GOROOT 中的多条路径:
$去拿
go: cannot find GOROOT directory: /usr/local/go/:/usr/local/google-cloud-sdk/platform/google_appengine/goroot
在将源代码复制到/usr/local 后,我确实运行了 ./install.sh 脚本
添加的额外 PATH 并没有解决我遇到的错误。
我看到了这个答案:Test cases for go and appengine
但它是 5 年前的,而且看起来很笨拙/笨拙。似乎 5 年后会有一个更优雅的解决方案,即复制单个目录和创建符号链接(symbolic link)。
编辑**********************
mv/usr/local/google-cloud-sdk/~/go/ 然后从 .bash_profile 中删除 GOPATH 和 GOROOT
然后我运行 ./install.sh
我尝试运行“go get”:
$ 去拿
go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH
由于失败,我添加了代码工作目录的路径并将 google-cloud-sdk 的路径附加到 PATH:
export GOPATH = "/Users/Bryan/work/gocode/skincarereview"
export PATH=$HOME/google-cloud-sdk:$PATH
go get 获取失败并显示相同的消息:
$ go get
go install: no install location for directory /Users/Bryan/work/gocode/skincarereview outside GOPATH
For more details see: 'go help gopath'
最佳答案
它既不在 $GOROOT 也不在 $GOPATH 中。只需将其解压缩到您的 $HOME 目录并运行安装程序即可。如有必要,通过将此行添加到您的 .bash_profile 来将其添加到您的 $PATH。
export PATH=$HOME/google-cloud-sdk:$PATH
确保您也使用 gcloud components install app-engine-go https://cloud.google.com/appengine/docs/standard/go/download 获取 golang SDK
请勿更改路径以将 src 目录包含在 google-cloud-sdk/platform/google_appengine/goroot/src 中。那会破坏事情。您将 $GOPATH 保留为正常安装。使用 App Engine SDK for Go 会自动使用该目录中的源代码,无需任何操作。
此外,除非您计划从源代码编译新的 Go 版本(如在新版本的语言中),否则您永远不应该手动更改 $GOROOT。它会自动为您设置正确的 $GOROOT。 https://dave.cheney.net/2013/06/14/you-dont-need-to-set-goroot-really
如果您的安装无缘无故地搞砸了(我曾经发生过一次),只需删除云 SDK 以及 $PATH 中对它的任何引用即可。还要完全卸载常规的 Go 安装。然后从头开始。安装 Go,解压 google-cloud-sdk,运行安装程序(如果需要,添加到 $PATH),gcloud components install app-engine-go。瞧。
在为 App Engine 开发时,您的 go 源代码会进入您的 REGULAR $GOPATH。他们不会进入 google-cloud-sdk/... 任何地方。要在本地运行 dev_appserver,请运行 dev_appserver.py [path-to-source],其中给定路径包含您的代码和 app.yaml。我通常将 cd 放入我的项目路径(例如 cd $HOME/go/src/myproject)并使用 dev_appserver.py ./ 运行。 https://cloud.google.com/appengine/docs/standard/go/tools/using-local-server
此处介绍了部署。 https://cloud.google.com/appengine/docs/standard/go/tools/uploadinganapp
编辑:文件夹结构。
$GOPATH = $HOME/去
google-cloud-sdk 文件夹的位置
关于google-app-engine - GO 在哪里寻找 google-cloud-sdk ? GOPATH 应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43591772/
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?
我正在使用Postgres.app在OSX(10.8.3)上。我已经修改了我的PATH,以便应用程序的bin文件夹位于所有其他文件夹之前。Rammy:~phrogz$whichpg_config/Applications/Postgres.app/Contents/MacOS/bin/pg_config我已经安装了rvm并且可以毫无错误地安装pggem,但是当我需要它时我得到一个错误:Rammy:~phrogz$gem-v1.8.25Rammy:~phrogz$geminstallpgFetching:pg-0.15.1.gem(100%)Buildingnativeextension
很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个
我的测试尝试访问网页并验证页面上是否存在某些元素。例如,它访问http://foo.com/homepage.html并检查Logo图像,然后访问http://bar.com/store/blah.html并检查页面上是否出现了某些文本。我的目标是访问经过Kerberos身份验证的网页。我发现Kerberos代码如下:主文件uri=URI.parse(Capybara.app_host)kerberos=Kerberos.new(uri.host)@kerberos_token=kerberos.encoded_tokenkerberos.rb文件classKerberosdefini
在Railcasts上,我注意到一个非常有趣的功能“转到符号”窗口。它像Command-T一样工作,但显示当前文件中可用的类和方法。如何在vim中获取它? 最佳答案 尝试:helptags有各种程序和脚本可以生成标记文件。此外,标记文件格式非常简单,因此很容易将sed(1)或类似的脚本组合在一起,无论您使用何种语言,它们都可以生成标记文件。轻松获取标记文件(除了下载生成器之外)的关键在于格式化样式而不是实际解析语法。 关于ruby-on-rails-Textmate'Gotosymbol
三分钟集成Tap防沉迷SDK(Unity版)一、SDK介绍基于国家对上线所有游戏必须增加防沉迷功能的政策下,TapTap推出防沉迷SDK,供游戏开发者进行接入;允许未成年用户在周五、六、日以及法定节假日晚上8:00-9:00进行游戏,防沉谜时间段进入游戏会弹窗进行提示!开发环境要求:Unity2019.4或更高版本iOS10或更高版本Android5.0(APIlevel21)或更高版本🔗Unity集成Demo参考链接🔗UnityTapSDK功能体验APK下载链接二、集成前准备1.创建应用进入开发者后台,按照提示开始创建应用;2.开通服务在使用TDS实名认证和防沉迷服务之前,需要在上面创建的应
我有一堆要清理的URL。它们都包含UTM参数,在这种情况下不是必需的,或者是有害的。示例:http://houseofbuttons.tumblr.com/post/22326009438?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+HouseOfButtons+%28House+of+Buttons%29所有可能的参数都以utm_开头。如何使用ruby脚本/结构轻松删除它们而不破坏其他潜在的“好”URL参数? 最佳答案 您可以将正则表达式应用于url以清