登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-27 17:54:41 431浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《使用 VGO 和 go.mod 找不到 Go 模块》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

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

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

构建 foo:找不到路径的模块

项目架构就像

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 并且 foo 文件夹位于我的 gopath 内,当我在 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 模块》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>