【问题标题】:Google App Engine Golang Imports not workingGoogle App Engine Golang 导入不起作用
【发布时间】:2023-12-26 06:52:01
【问题描述】:

我正在尝试使用 golang 的数据存储客户端库,但它不起作用。我通过 go -t 命令下载了它,也通过下载 github 文件手动下载了它。下载后,我已将库复制到我的 google-cloud-sdk 文件夹中。但是现在当我尝试启动 dev_appserver.py 时,缺少很多包。我必须手动导入它们还是有错误?

【问题讨论】:

    标签: google-app-engine go google-cloud-datastore


    【解决方案1】:

    您需要设置 go env。看来您没有 go env 设置。 例如:

    11:35 $ go env
    ...
    GOPATH="/Users/.../Goarea"
    ...
    GOROOT="/usr/local/go"
    

    在您的 GOPATH 中,您将拥有 bin/pkg/src。所以当你这样做时

     go get -u cloud.google.com/go/datastore 
    

    它将被拉到 .../src/cloud.google.com/go/datastore

    然后您可以导入 pkg 并在您的代码中使用它。

    package main
    
    import (
       "encoding/json"
       "log"
       "net/http"
    
       "google.golang.org/api/iterator"
       "google.golang.org/api/option"
    
       // Imports the Google Cloud Datastore client package.
       "cloud.google.com/go/datastore"
       "golang.org/x/net/context"
    )
    ...
    func main() {
       ctx := context.Background()
       projectID := "your id"
       client, err := datastore.NewClient(ctx,
       projectID, option.WithServiceAccountFile("YOUR CREDENTIAL.json"))
       if err != nil {
           log.Fatalf("Failed to create client: %v", err)
       }
    ...
    ...
    

    【讨论】:

    • google.golang.org/appengine/datastore 是否已弃用?我尝试将您的代码实现到我的 appengine 程序中,但它不起作用。如何在处理函数中使用它?
    • 我不确定 appengine。我可以看到有构造句柄函数的例子看看这个链接godoc.org/google.golang.org/appengine/datastore
    • 我认为如果你只是删除 godoc.org 也是一样的。