我正在try 构建并运行一个repo(https://github.com/hyperledger/fabric/tree/master),但是这个错误不断出现,而且我仍然没有找到解决这个问题的方法.

consensus.go:12:2: use of internal package github.com/hyperledger/fabric/internal/pkg/identity not allowed

这只是导致此错误的众多文件中的一个. 我很肯定我做错了什么,因为这个回购应该是有效的.

Go版本:

go version go1.13.5 linux/amd64

操作系统:Linux Mint 19.2 Cinnamon

推荐答案

Internal packages(其路径中包含internal文件夹的文件夹内的包)只能从internal文件夹的父级根目录下的包中导入.

例如,包装pkg/foo/internal/bar可以由包装pkg/foo/internal/baz进口,也可以由包装pkg/foo/baz进口,但不能由包装pkg进口,也不能由包装pkg/bar进口.这是故意的.这是如此之大,复杂的包可以分解成更小的包,而不必expose 内部.

您必须将内部包视为"私有"或"外部"不存在.

见相关:Can I develop a go package in multiple source directories?

Command go: Internal Directories阅读更多关于内部套餐的信息.

内部包是一种编译器限制.如果要在自己的项目中公开它们(如果要使用内部包),则必须删除internal文件夹,然后当然也必须更改导入(导入路径).

Go相关问答推荐

有没有更简单的方法在Go中编写这个逻辑?

map 中的多个函数类型,Golang

Go 中将 int 切片转换为自定义 int 切片指针类型的函数

从 wincrypt API 到 Go 的 RC2 解密

Golang校验器包:重命名字段错误处理

命令行参数在 Golang 程序中不正确地接受为参数

如何将已知类型转换为指向switch 中类型参数的指针?

如何在 Go msgraph-sdk-go 中转发消息并包括抄送和/或密送收件人?

io.Reader 无限循环与 fmt.Fscan

golang中如何声明多个接口约束?

Apache Beam 在 Go 中从 PCollection 中 Select 前 N 行

如何在 Golang http.Request 对象中读取自定义 ajaxParams

如何在时间范围内规范化数组的元素?

如何在自定义验证函数中获取 struct 名称

如何将一片十六进制字节转换为整数

如何在gin中获取参数值数组

即使一个测试用例失败,如何运行所有测试用例

具有多个嵌入式 struct 的 Go MarshalJSON 行为

正确编码 JWT

Golang 泛型同时具有接口和实现