17

我正在尝试构建和运行一个存储库(https://github.com/hyperledger/fabric/tree/master),但是这个错误不断出现,我仍然没有找到解决方案。

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

这只是导致此错误的众多文件之一。我很确定我做错了什么,因为这个 repo 应该是有效的。

去版本:

go version go1.13.5 linux/amd64

操作系统:Linux Mint 19.2 肉桂

4

2 回答 2

39

内部包(位于路径中有internal文件夹的文件夹内的包)只能从以internal文件夹父级为根的包中导入。

例如,包pkg/foo/internal/bar可以由包导入,pkg/foo/internal/baz也可以从pkg/foo/baz导入,但不能由包导入,pkg也不能由 导入pkg/bar。这是设计使然。这是如此之大,复杂的包可以分解成更小的包,而不必暴露内部结构。

您必须将内部包视为“私有”或“外部”不存在。

参见相关:我可以在多个源目录中开发一个 go 包吗?

在Command go: Internal Directories阅读更多关于内部包的信息。

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

于 2019-12-15T08:59:25.743 回答
0

将fyne.io/fyne/v2/internal/widget 更改fyne.io/fyne/v2/widget

只需从代码编辑器内的包路径中删除/internal

于 2022-01-26T15:48:23.840 回答