google-app-engine - 云存储 API 的错误导入 "syscall"

标签 google-app-engine go

我正在按照 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:解析输入失败:解析器:在 goapp/src/golang.org/x/net/internal/nettest/error_posix.go 中导入“syscall”错误

我做错了什么?


重现步骤

% mkdir $HOME/myapp

我使用的是没有静态资源的版本:

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

% goapp get github.com/golang/example/appengine-hello

此命令会将示例应用程序下载到 GOPATH 中的第一个路径条目

% go get -u golang.org/x/oauth2

% go get -u google.golang.org/cloud/storage

  • 尝试运行您的 go 应用程序

% goapp 服务

您将看到以下编译错误(无堆栈跟踪):

2015/12/23 10:37:07 go-app-builder:解析输入失败:解析器:go/src/golang.org/x/net/ipv6/control_unix 中的错误导入“系统调用”。去

最佳答案

此错误是由以下两种情况之一引起的:

1) 通过导入另一个使用它的包来隐式导入 syscall,如 this related question 中所述.

2) 将你的包源文件放在你的 GOPATH 目录中,该目录与你的项目的 app.yaml 处于或低于同一级别(例如 app.yaml~/go,并在 ~/go/gopath/src 中打包源代码)。如果你的 GOPATH 中存在像 x/net/internal/nettest 这样的包,syscall 导入将在编译时被 goapp 解析并抛出编译错误。

避免这两种情况应该足以防止任何错误的导入“系统调用”错误或相关的编译错误。

关于google-app-engine - 云存储 API 的错误导入 "syscall",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34144642/

相关文章:

google-app-engine - Google App Engine 服务仅在内部网络上通信并可用

python - 使用 WingIDE 时 Google App Engine 开发服务器启动缓慢

json - mapstructure 如何使用鉴别器来解码具体类型

go - 我可以遍历仅是 [] 结构的结构吗?

linux - 如何批量访问google定义功能

Python发送和接收HTTP POST

python - 我应该如何在 Google App Engine 项目中导入 django.middleware 类?

go - 模拟 mgo 链接函数

git - 将 gitea 绑定(bind)到 localhost 地址以进行隧道传输?

go - 将所有错误处理的 golang 错误代码替换为 panic