我正在尝试构建和运行存储库(https://github.com/hyperledger/fabric/tree/master),但此错误不断弹出,但我仍未找到解决方案。
fields
这只是出现此错误的许多文件之一。 我很确定我做错了,因为此仓库正在运行。
开始版本:
consensus.go:12:2: use of internal package github.com/hyperledger/fabric/internal/pkg/identity not allowed
OS:Linux Mint 19.2肉桂
答案 0 :(得分:3)
Internal packages(位于路径中具有internal
文件夹的文件夹中的软件包)只能从以internal
文件夹的父文件夹为根的软件包中导入。
例如软件包pkg/foo/internal/bar
既可以由软件包pkg/foo/internal/baz
导入,也可以从pkg/foo/baz
导入,但是不能由软件包pkg
导入,也不能由pkg/bar
导入。这是设计使然。如此大的复杂包装可以分解成较小的包装,而无需暴露内部。
您必须将内部软件包视为“私有”软件包,或者将其从“外部”视为不存在。
查看相关内容:Can I develop a go package in multiple source directories?
在Command go: Internal Directories上了解有关内部软件包的更多信息。
内部软件包是编译器的限制。如果要在自己的项目中公开它们(如果要使用内部软件包),则必须删除internal
文件夹,然后当然也必须更改导入(导入路径)。 / p>