gpt4 book ai didi

使用 VGO 和 go.mod 找不到 Go 模块

转载 作者:IT王子 更新时间:2023-10-29 02:20:16 25 4
gpt4 key购买 nike

我正在使用版本化的 Go 命令来管理我的 vendor ,一切正常,但是当我运行 go build 时,它找不到我的本地包

我已经在我的 go.mod 中设置了模块根目录,但我仍然遇到错误

build foo: cannot find module for path

项目架构是这样的

foo/
|__src/github.com/username/package1/package1.go
|__src/github.com/username/package2/package2.go
|__src/github.com/username/package3/package3.go
|__main.go
|__go.mod
|__go.sum

所以我的 go.mod 看起来像

module foo

require (
...
)

我关注了https://research.swtch.com/vgo-tour但我不明白为什么这不起作用。

我的 Go 版本是 1.11,当我在 GOPATH 之外尝试时,foo 文件夹在我的 GOPATH 中这甚至不起作用。

我让它工作的唯一一次就是做

module github.com/username/package1

require (
...
)

但找不到其他 2 个包,我得到与上述相同的错误。

我是不是漏掉了什么,或者我提供的模块路径是否必须更改?

最佳答案

我假设你导入的本地包是错误的,按照我的例子。

这是我的 go.mod(在 GOPATH 之外,例如我导入了 mux):

module example

require github.com/gorilla/mux v1.6.2 // indirect

顺便说一句,您可以创建一个空的 go.modgo 会为您找到并更新您的 go.mod

main.go:

package main

import (
_ "example/src/foo" // local package
"fmt"
_ "github.com/gorilla/mux" // example import
)

func main() {
fmt.Println("foo")
}

foo 本地包:

package foo

import "fmt"

func bar() {
fmt.Println("foo")
}

模块树:

├── go.mod
├── go.sum
├── main.go
└── src
└── foo
└── foo.go

您可以在此处找到更多解释 Modules

关于使用 VGO 和 go.mod 找不到 Go 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52612037/

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