无法从模块中获取软件包

时间:2019-12-09 01:50:57

标签: go go-modules

我正在尝试创建一个微服务应用程序,该应用程序取决于包含一般错误的net模块(因此,我不必在所有模块中“复制”它们)。

问题是由于某种原因,它能够找到该模块,但随后告诉我该模块没有软件包(net模块没有main.go文件,因为它是只是用于其他项目的一组文件)

go: finding github.com/USERNAME/net latest
build github.com/USERNAME/micro-helix: cannot load github.com/USERNAME/net: module github.com/USERNAME/net@latest found (v0.0.0-20191209010811-97a65ac0928c), but does not contain package github.com/USERNAME/net

这是go.mod文件,其中包含所有必要的要求(就我而言):

module github.com/USERNAME/micro-helix

go 1.13

require (
    github.com/USERNAME/net v0.0.0-20191209010811-97a65ac0928c
    github.com/USERNAME/service v0.0.0-20191209005400-57ee0eb02082
    github.com/golang/protobuf v1.3.2
    github.com/hashicorp/consul/api v1.3.0 // indirect
    github.com/micro/go-micro v1.17.1
    github.com/micro/go-plugins v1.5.1 // indirect
    github.com/nats-io/nats-streaming-server v0.16.2 // indirect
    github.com/nats-io/stan.go v0.5.2 // indirect
    github.com/nicklaw5/helix v0.5.4
    github.com/spf13/viper v1.5.0 // indirect
)

go.mod模块的net文件很简单:

module github.com/USERNAME/net

go 1.13

如果您需要任何进一步的说明,请随时提供。我知道这可能是菜鸟的错误(配置错误),但这实际上是我第一次尝试用Go编写东西。

更新#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

2 个答案:

答案 0 :(得分:0)

可能您是从*.go中的github.com/USERNAME/micro-helix个文件中以github.com/USERNAME/net导入模块的。

您必须通过完整路径(如

)导入所有子包(在该文件中使用)。
import (
    "github.com/USERNAME/net/errors"
    "github.com/USERNAME/net/proto"
)

答案 1 :(得分:0)

我有一个类似的问题,问题是我已将代码检入master,但是另一个分支被设置为主git repo中的默认分支。将默认分支更改为master可以为我修复,但是YMMV。