【发布时间】:2015-12-07 22:37:15
【问题描述】:
我正在按照 https://cloud.google.com/appengine/docs/go/googlecloudstorageclient/download 上的说明开始将一些代码从现已弃用的 Files API 迁移到新的 Cloud Storage API,但没有成功。
我正在遵循的步骤是......
我正在运行的 appengine v1.9.23 比所需的 appengine v1.8.1 晚。
我的 $GOPATH 已设置,所以我跳过第 1 步。
我继续第 2 步:
goapp get -u golang.org/x/oauth2
goapp get -u google.golang.org/cloud/storage
我不在托管 VM 上进行开发,因此我跳过了第 3 步。
现在当我运行应用程序时,我得到:
go-app-builder: Failed parsing input: parser: bad import "syscall" in goapp/src/golang.org/x/net/internal/nettest/error_posix.go
我做错了什么?
重现步骤
从 https://console.cloud.google.com/storage/browser/appengine-sdks/featured/ 下载安装 Google Appengine 运行时版本 1.9.23。按照https://cloud.google.com/appengine/downloads?hl=en
上记录的安装说明进行操作
创建一个appengine项目目录:
% mkdir $HOME/myapp
- 创建一个新的
app.yaml文件作为~/myapp/app.yaml。阅读谷歌网站上的说明了解详细信息:https://cloud.google.com/appengine/docs/go/config/appconfig
我使用的版本没有静态资源:
application: myapp
version: alpha-001
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
- 为 Go 源文件创建一个位置。
% mkdir $HOME/myapp/go
- 将您的 GOPATH 设置为源的位置
% export GOPATH=$HOME/myapp/go
- 获取 Go appengine 示例项目:https://github.com/golang/example
% goapp get github.com/golang/example/appengine-hello
此命令会将示例应用程序下载到 GOPATH 中的第一个路径条目
- 按照https://cloud.google.com/appengine/docs/go/googlecloudstorageclient/download 中的说明安装 Google Cloud Storage 客户端库。有关更多详细信息,请参阅此问题顶部的步骤。按照说明操作应该会运行 2 个命令:
% go get -u golang.org/x/oauth2
% go get -u google.golang.org/cloud/storage
- 尝试运行您的 Go 应用程序
% goapp serve
您将看到以下编译错误(无堆栈跟踪):
2015/12/23 10:37:07 go-app-builder: Failed parsing input: parser: bad import "syscall" in go/src/golang.org/x/net/ipv6/control_unix.go
【问题讨论】:
-
在所引用问题的上下文中,我的问题可以表述为:“Google 提供的说明是错误的还是我做错了什么?这些说明似乎指示用户使用需要 @987654342 的库@支持一个不支持它的平台。”
-
这个错误是更大的堆栈跟踪的一部分吗?您能否提供更明确的步骤来说明如何重现此问题?
-
Nick - 您是否知道说明适用于 appengine-1.9.23 的情况? Google 说明中的 GOPATH 设置不明确,可能会影响编译结果,尽管我还没有找到产生正确结果的值。该错误没有堆栈跟踪,因为它是一个编译错误(“parse:”)。
-
我遇到了同样的事情,正要自己问这个问题。你找到解决办法了吗?
标签: google-app-engine go