Go 无法从模块中获取包
我正在尝试创建一个微服务应用程序,它依赖于包含一般错误的Go 无法从模块中获取包,go,go-modules,Go,Go Modules,我正在尝试创建一个微服务应用程序,它依赖于包含一般错误的net模块(因此我不必在所有模块中“复制”它们) 问题是,出于某种原因,它能够找到模块,但随后告诉我模块没有包(net模块没有main.go文件,因为它只是一组跨其他项目使用的文件) go:finding github.com/USERNAME/net latest 生成github.com/USERNAME/micro-helix:无法加载github.com/USERNAME/net:module github.com/USERNAME
net
模块(因此我不必在所有模块中“复制”它们)
问题是,出于某种原因,它能够找到模块,但随后告诉我模块没有包(net
模块没有main.go
文件,因为它只是一组跨其他项目使用的文件)
go:finding github.com/USERNAME/net latest
生成github.com/USERNAME/micro-helix:无法加载github.com/USERNAME/net:module github.com/USERNAME/net@latest找到(v0.0.0-20191209010811-97a65ac0928c),但不包含包github.com/USERNAME/net
这是包含所有必要要求的go.mod
文件(就我而言):
net
模块的go.mod
文件非常简单:
module github.com/USERNAME/net
go 1.13
如果您需要任何进一步的澄清,我在这里提供。我知道这可能是一些新手的错误(配置错误),但这是我第一周真正尝试用围棋写东西
更新#1
这是github.com/USERNAME/net模块的结构
/-
errors/
- error.go // github.com/USERNAME/net/errors
- code.go // github.com/USERNAME/net/errors
proto/
- error.pb.go // github.com/USERNAME/net/proto
- response.pb.go // github.com/USERNAME/net/proto
errors.proto
go.mod // module github.com/USERNAME/net
response.proto
您可能已经从
github.com/USERNAME/micro-helix
中的一些*.go
文件导入了模块,作为github.com/USERNAME/net
您必须导入所有子包(您在该文件中使用的子包),直到有完整的路径,如
导入(
“github.com/USERNAME/net/errors”
“github.com/USERNAME/net/proto”
)
我遇到了一个类似的问题,问题是我将代码签入了master,但另一个分支被设置为主git repo中的默认分支。将默认分支更改为master为我修复了它,但是YMMV。模块net
的go文件声明了什么包名?@BurakSerdar我已经用net
模块的结构更新了这个问题,如果没有,我希望它能有所帮助,我有点困惑,你能详细说明你的问题吗?你是怎么得到这个错误的?你在跑吗?快去拿?或者你在net中导入了一个包,并运行了go构建吗?@BurakSerdar首先,我编写了net
模块并将其推送到github,然后我移动到另一个使用net
的应用程序,我使用go get-u github.com/USERNAME/net
安装了它,事情是,第二个应用程序完全可以导入文件(我可以按住Shift键并单击Goland中的文件名,然后进入net
实现),但是构建失败,出现问题中的错误。该错误意味着您在某处有一个导入“github.com/USERNAME/net”
,因为github.com/USERNAME/net
不包含Go源文件,所以它不起作用。我会在你所有的源代码中搜索github.com/USERNAME/net
,并确保你没有试图在任何地方直接导入它,你只是在它下面导入包。
/-
errors/
- error.go // github.com/USERNAME/net/errors
- code.go // github.com/USERNAME/net/errors
proto/
- error.pb.go // github.com/USERNAME/net/proto
- response.pb.go // github.com/USERNAME/net/proto
errors.proto
go.mod // module github.com/USERNAME/net
response.proto