我正在尝试将https://github.com/appscode/voyager从 glide 转换为 go 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 模块的来源?
我正在尝试将https://github.com/appscode/voyager从 glide 转换为 go 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 模块的来源?
如何找到这个旧的 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
人们看到vs. case 不匹配的最常见原因sirupsen/logrus
是在导入github.com/docker/docker
或其他 docker 存储库之一时。导入 docker repos 与模块有点混淆,包括因为:
docker/docker
回购不遵循 semver 。v1.13.1
semver 标签docker/docker
。
go
如果您不要求更具体的版本,命令默认选择旧版本。docker/docker
版本导入旧的且不正确的大写字母Sirupsen/logrus
,然后会触发上述问题中报告的错误。docker/docker
与docker/engine
存储库以及使用什么导入路径通常存在混淆。go.mod
文件。对于docker/docker
repo,导入路径仍然是github.com/docker/docker
,但它需要来自github.com/docker/engine
,因此推荐的方法通常是让 docker 导入器执行import "github.com/docker/docker"
并将其编辑go.mod
为如下内容:
require (
github.com/docker/docker v1.13.1
)
replace github.com/docker/docker => github.com/docker/engine <tag-or-commit-hash>
Docker 问题#39302跟踪尝试记录使用模块时如何导入 docker repos。