不区分大小写的导入冲突:“github.com/sirupsen/logrus”和“github.com/Sirupsen/logrus”

Jos*_*ero 0 go

我正在使用 ory-am / hydra,它使我在 Golang 库 gopkg.in/gorethink/gorethink.v3 中出错,错误如下:

../../../gopkg.in/gorethink/gorethink.v3/cluster.go:10:2: case-insensitive import collision: "github.com/sirupsen/logrus" and "github.com/Sirupsen/ logrus "
Run Code Online (Sandbox Code Playgroud)

添加 go app.go 后的这个

如果您有任何建议可以指导我解决此事件

Fli*_*mzy 5

那个包经历了一次非常痛苦和遗憾的重命名。它以前是Sirupsen/logrus,并被重命名为sirupsen/logrus。后者被一些人错误地认为更惯用,但 Go 处理混合大小写导入没有问题,因此重命名是不必要的,作者对此感到遗憾。但是重新命名只会增加混乱,因此决定坚持使用不必要的小写版本。

但那都是过去了。在这一点上,小写版本是唯一可用的

您观察到的行为通常是导入两个(或多个)依赖于logrus包的包的结果,一个依赖于旧名称,另一个依赖于新名称。因此,如果您的依赖项仍然具有大写版本作为依赖项,则需要更新该库。

项目自述文件

区分大小写

该组织的名称已更改为小写——并且不会再改回来。如果由于区分大小写而导致导入冲突,请使用小写导入:github.com/sirupsen/logrus。

或者,您可以提供带有大写导入名称的旧版本库,并更新所有导入以使用该版本。