我正在尝试将https://github.com/appscode/voyager从滑行转换为mod。
我收到如下错误:
go: github.com/Sirupsen/logrus@v1.4.1: parsing go.mod: unexpected module path "github.com/sirupsen/logrus"
go: error loading module requirements
我如何找到这个Sirupsen旧模块的来源?
答案 0 :(得分:4)
我如何找到这个Sirupsen旧模块的来源?
使用Go 1.13 Beta(go get golang.org/dl/go1.13beta1 && go1.13beta1 download
)或什至更好,请尝试使用最新的Go on Tip / master(go get golang.org/dl/gotip && gotip download
)。
Go 1.13总体上改进了错误消息。它可以为您提供帮助,包括最有可能显示导致错误的导入链。
例如:
$ gotip build .
go: example.com/temp/mod imports
github.com/docker/libcompose/docker imports
github.com/Sirupsen/logrus: github.com/Sirupsen/logrus@v1.4.2: parsing go.mod:
module declares its path as: github.com/Sirupsen/logrus
but was required as: github.com/sirupsen/logrus
在该示例中,您可以看到docker/libcompose/docker
正在导入旧的且现在不正确的大写版本的Sirupsen/logrus
。
人们看到Sirupsen/logrus
与sirupsen/logrus
大小写不匹配的最常见原因是在导入github.com/docker/docker
或其他Docker存储库之一时。导入docker repos与模块有些混淆,其中包括:
docker/docker
回购没有紧随其后。v1.13.1
存储库中有一个非常旧的docker/docker
semver标签。
go
命令会默认使用该旧版本更具体的版本。 docker/docker
版本会导入旧的且不正确的大写字母Sirupsen/logrus
,然后这会触发上述问题中报告的错误。docker/docker
与docker/engine
存储库以及要使用的导入路径,通常存在混淆。go.mod
文件。对于docker/docker
存储库,导入路径仍为github.com/docker/docker
,但它必须来自github.com/docker/engine
,因此推荐的方法通常是让Docker进口商使用{{1} }并将其import "github.com/docker/docker"
修改为以下内容:
go.mod
Docker问题#39302跟踪了如何记录使用模块时如何导入docker仓库的记录。