【问题标题】:non-standard import in standard package windows标准包窗口中的非标准导入
【发布时间】:2018-02-18 19:08:32
【问题描述】:

由于这个错误,我似乎无法运行我的 go 代码

标准包“goprojects/search”中的非标准导入“gopkg.in/olivere/elastic.v5”

Main.go 位于:C:\Go\src\goprojects\search\main.go

GOROOT 是 C:\Go

GOPATH 是 C:\Go\src\goprojects(尝试在此处添加我当前的工作目录 \search,但没有帮助)

当我运行“go get gopkg.in/olivere/elastic.v5”时,我会在 C:\Go\src\goprojects\src\gopkg.in\olivere\elastic.v5 中获得导入的文件

visual studio 代码给了我这个信息

在以下任何一个中都找不到包“go.pkg.in/olivere/elastic.v5”:

C:\Go\src\vendor\gopkg.in\olivere\elastic.v5(供应商树)

C:\Go\src\gopkg.in\olivere\elastic.v5(来自 $GOROOT)

C:\Go\src\goprojects\src\gopkg.in\olivere\elastic.v5(来自 $GOPATH)

我的代码

package main

import (
    "fmt"
    "net/http"

    elastic "gopkg.in/olivere/elastic.v5"
)

func main() {
    http.HandleFunc("/search", search)
    http.ListenAndServe(":3000", nil)
}

func search(w http.ResponseWriter, r *http.Request) {
    searchString := r.URL.Query().Get("q")
    fmt.Println("Searching for" + searchString)

    // Create a client
    client, err := elastic.NewClient()

    w.Write([]byte(searchString))
}

【问题讨论】:

  • 你不能把你的代码放在GOROOT中。见How to Write Go Code
  • 意识到,我遵循的视频教程把它放在那里,所以我也做了同样的事情

标签: go


【解决方案1】:

将我的 goprojects 从我的 GoRoot 路径中移到 C:\goprojects 中的一个单独文件夹中,并将我的 GoPath 替换为新路径并且它工作正常。

【讨论】:

    猜你喜欢
    • 2016-08-22
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    相关资源
    最近更新 更多