无法从模块获取包

Iva*_*pov 6 go go-modules

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

问题是,由于某种原因,它能够找到该模块,但随后告诉我该模块没有包(该模块没有netmain.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
Run Code Online (Sandbox Code Playgroud)

这是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
)
Run Code Online (Sandbox Code Playgroud)

go.mod该模块的文件非常net简单:

module github.com/USERNAME/net

go 1.13
Run Code Online (Sandbox Code Playgroud)

如果您需要任何进一步的说明,我会在这里提供。我知道这可能是一些菜鸟错误(配置错误),但这是我第一周真正尝试用 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
Run Code Online (Sandbox Code Playgroud)

小智 4

可能您已经从as中的某些*.go文件导入了模块。github.com/USERNAME/micro-helixgithub.com/USERNAME/net

您必须通过完整路径导入所有子包(您在该文件中使用),例如

import (
    "github.com/USERNAME/net/errors"
    "github.com/USERNAME/net/proto"
)
Run Code Online (Sandbox Code Playgroud)