首页 文章

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

提问于
浏览
1

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

我已将模块root设置在 go.mod 中,但仍然出现错误

build 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,但我不明白为什么这不起作用 .

当我在 GOPATH 外面尝试时,我的Go版本是 1.11foo 文件夹在我的 GOPATH 内部,这甚至都不起作用 .

我工作的唯一一次就是这样做

module github.com/username/package1

require (
    ...
)

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

我错过了什么或者我提供的模块路径是否必须更改?

1 回答

  • 0

    我假设导入的本地包是错误的,请按照我的示例 .

    有我的 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

相关问题