AppEngine:找不到导入“google.golang.org/appengine”

时间:2017-05-02 18:03:17

标签: google-app-engine google-cloud-platform

我正在尝试在AppEngine上部署API,但我不确定它为什么不起作用,这里是代码的摘录:

package main 

import (
    "encoding/json"
    "io/ioutil"
    "net/http"
    "fmt"

    "google.golang.org/appengine"
)


func main () {
    InitPubSub()

    http.HandleFunc("/", HandlerBase)
    http.HandleFunc("/user", HandlerUser)
    http.HandleFunc("/event", HandlerEvent)

    appengine.Main()
}

当我尝试部署应用程序时,我收到以下错误(gcloud app deploy): main.go:9:找不到导入:“google.golang.org/appengine"

我已按照安装指南进行操作:https://cloud.google.com/appengine/docs/standard/go/download

并下载了appengine包:go go google.golang.org/appengine

谢谢!

3 个答案:

答案 0 :(得分:1)

引自Google App Engine论坛:

“开发人员已经意识到这个问题并且正在积极地为它提供坚实的解决方案。与此同时,您应该能够使用”goapp deploy“而不是gcloud命令。”

答案 1 :(得分:1)

当我关注时,我也遇到了这个问题:https://cloud.google.com/appengine/docs/standard/go/tools/using-local-server

对我有用的是取代

import "google.golang.org/appengine"

使用:

import "appengine"

我不确定指令是否过时。

答案 2 :(得分:1)

要运行go appengine项目,我发现单个服务的项目结构绰绰有余。

your/project/path/src/mainapp.go
your/project/path/src/app.yaml
or
your/project/path/src/mainfolder/mainapp.go
your/project/path/src/mainfolder/app.yaml
your/project/path/src/lib/lib1/watever.go
your/project/path/src/lib/lib2/whatever2.go
your/project/path/src/google.golang.org/ - for the golang appengine package
your/project/path/src/golang.org/ - golang packages
your/project/path/src/github.org/ - github packages

子文件夹/程序包文件夹不得位于主app.yaml文件上方。此外,golang appengine程序包必须放在“ src /”内部,并且只能直接从“ google.golang.org”导入路径导入,而在其下方(而不是上方)可以导入。即,如果“ app.yaml”文件直接位于src文件夹下:src / app.yaml-src / mainapp.go,则不允许“ customFolder / google.golang.org”,但允许“ appengine”。