无法从 GO 中的不同文件导入包

Can't import a package from a different file in GO

我正在使用 go1.13.4 以下是我的项目结构:

src/types/type.go
src/utils/util.go
go.mod

在go.mod中:

module example.com/graphql

go 1.13

require github.com/graph-gophers/graphql-go v0.0.0-20191031232829-adde0d0f76a3

在src/types/type.go:

package types

type USER struct {
   ...
}

在src/utils/util.go,

package utils
import (
    "example.com/graphql/types"
    "fmt"
    "io/ioutil"
    "os"
)

构建项目时遇到 tan 错误:

$ go build ./...
src/utils/utils.go:4:2: cannot find module providing package example.com/graphql/types

不知为什么找不到包example.com/graphql/types?我正在阅读 https://blog.golang.org/using-go-modules 并且我已经在项目根目录下的 go.mod 文件中设置了模块名称。

根据您当前的布局,types 的导入路径是 example.com/graphql/src/types

如果你有那个结构,

go.mod 应该在 src 里面。或者更好的办法是摆脱 srcgo.mod 必须在 typesutils 文件夹旁边。