【问题标题】:AppEngine "appengine" package always fails with "syscall" or "unsafe" import failureAppEngine“appengine”包总是因“系统调用”或“不安全”导入失败而失败
【发布时间】:2016-08-05 14:27:42
【问题描述】:

使用 AppEngine 1.9.40 SDK,我什至无法导入“appengine”包。

app.yaml:

application: testapp
version: 1
runtime: go
api_version: go1

handlers:
- url: /.*
  script: _go_app

转码:

package main

import (
    "google.golang.org/appengine"
)

func init() {
    appengine.IsDevAppServer()
}

func main() {
    // This is only here because go-get needs on it.
}

命令行:

$ GOPATH=$(pwd) goapp serve

错误:

2016/08/01 23:58:02 go-app-builder: Failed parsing input: parser: bad import "unsafe" in src/golang.org/x/net/icmp/helper.go

可以做些什么来克服这个问题?

【问题讨论】:

    标签: google-app-engine go


    【解决方案1】:

    应用程序目录树(根是包含 app.yaml 的目录)中的所有代码都编译到应用程序中。 Appengine 拒绝使用“不安全”的代码。

    解决方法是将有问题的代码移出应用程序目录树。以下是排列代码的一种可能方式:

    $GOPATH
        src
            testapp
                app.yaml
                app.go
            golang.org
                x
                    net
                        icmp
                        ... and so on
    

    使用包main也有可能会造成一些麻烦。如果上述方法不起作用,请更改包名。

    Appengine 应用程序不是随手可得的。不要努力让它们如此。

    https://github.com/golang/gddo/issues/428 有更多关于此主题的讨论。

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2011-08-02
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 2012-12-30
      相关资源
      最近更新 更多