gpt4 book ai didi

Golang : How to use vgo? 错误: "cannot find package"

转载 作者:IT王子 更新时间:2023-10-29 01:34:44 25 4
gpt4 key购买 nike

  1. 我有一个项目目前在我的 GOPATH /usr/local/go/src/

  2. 然后我进入我的项目根目录并运行:go get -u golang.org/x/vgo

  3. 在我的 main.go 中,我想使用 lib httprouter,所以我在 import 语句中添加了:

    导入 (
    “github.com/julienschmidt/httprouter”
    )

  4. 我运行了 vgo build

  5. 然后,当我像往常一样开始运行我的服务器时,出现以下错误:


main.go:8:2: 在以下任何一个中找不到包“github.com/julienschmidt/httprouter”:
/usr/local/go/src/github.com/julienschmidt/httprouter(来自 $GOROOT)
/Users/myuser/go/src/github.com/julienschmidt/httprouter(来自 $GOPATH)

我理解错了,好像是在GOPATH或者GOROOT下搜索httprouter。那么我是否需要做任何其他事情来让 vgo 做它的事情并且我可以成功运行我的服务器?

最佳答案

使用vgo构建

这是使用 vgo 的“Hello, World”演练,包括常见错误以及如何响应这些错误。

  1. $ go get -u golang.org/x/vgo
  2. $ cd/tmp/hello # 在 GOPATH 之外。
  3. $ cat main.go

    package main

    import "fmt"

    func main() {
    fmt.Println("Hello, World")
    }
  4. $ vgo 构建

    cannot determine module root; please create a go.mod file there
  5. 这个错误告诉我们需要指定 vgo 模块的根目录。模块是一起版本化的包(可能是一个)的集合。创建一个空的 go.mod 文件来表示这是模块根:

    $ touch go.mod
  6. 再次尝试构建:$ vgo build

    vgo: cannot determine module path for source directory
    /tmp/hello (outside GOPATH, no import comments)
  7. 这个错误告诉我们 vgo 不知道我们包的导入路径。有两种方式告诉它:

    1. module 语句添加到 go.mod
    2. 在我们的包中添加一个 import 注释。

    我们现在使用选项 2,然后返回选项 1。将 main.go 的第一行更改为:

    package main // import "my/import/path/hello"
  8. $ vgo build 最后一次。

  9. 运行二进制文件:$ ./hello

    Hello, World

注意:go.mod 现在包含一个 module 行(上面的选项 1):

$ cat go.mod 
module my/import/path/hello

如果您在 GOPATH 中,则不应出现第 5 步中的错误 - vgo build 应该会自动确定您在其中你的 GOPATH 并相应地添加 module 行。


使用vgo run(不使用vgo build)

对于这个例子,让我们使用来自 A Tour of Versioned Go (vgo)hello.go :

  1. $ go get -u golang.org/x/vgo
  2. $ mkdir/tmp/hello2
  3. $ curl -sS https://swtch.com/hello.go >hello.go
  4. $ vgo run hello.go

    cannot determine module root; please create a go.mod file there
  5. $ touch go.mod

  6. $ vgo run hello.go

    vgo: resolving import "rsc.io/quote"
    vgo: finding rsc.io/quote (latest)
    vgo: adding rsc.io/quote v1.5.2
    Hello, world.

关于Golang : How to use vgo? 错误: "cannot find package",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50803978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com