我正在尝试构建和运行一个 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
Run Code Online (Sandbox Code Playgroud)
这只是导致此错误的众多文件之一。我很确定我做错了什么,因为这个 repo 应该可以工作。
去版本:
go version go1.13.5 linux/amd64
Run Code Online (Sandbox Code Playgroud)
操作系统:Linux Mint 19.2 Cinnamon
icz*_*cza 30
内部包(internal位于路径中包含文件夹的文件夹内的包)只能从以internal文件夹父级为根的包导入。
例如,包pkg/foo/internal/bar可以由包导入pkg/foo/internal/baz,也可以从pkg/foo/baz导入,但不能由包导入,pkg也不能由 导入pkg/bar。这是设计使然。这是如此之大,复杂的包可以分解成更小的包,而不必暴露内部结构。
您必须将内部包视为“私有”或“外部”不存在。
请参阅相关:我可以在多个源目录中开发一个 go 包吗?
在Command go:内部目录中阅读有关内部包的更多信息。
内部包是编译器限制。如果要在自己的项目中公开它们(如果要使用内部包),则必须删除该internal文件夹,然后当然还必须更改导入(导入路径)。