Go Mod尝试下载不存在的软件包

问题描述

使用命令go mod tidy时,Go mod出现以下错误

go: finding module for package github.com/NirmalVatsyayan/Backend/MysqLDBLib/MysqLConnInit
github.com/NirmalVatsyayan/UserService/Handler imports
        github.com/NirmalVatsyayan/MysqLDBLib/Model imports
        github.com/NirmalVatsyayan/Backend/MysqLDBLib/MysqLConnInit: cannot find module providing package github.com/NirmalVatsyayan/Backend/MysqLDBLib/MysqLConnInit: module github.com/NirmalVatsyayan/Backend/MysqLDBLib/MysqLConnInit: gi
t ls-remote -q origin in /Users/nirmalvatsyayan/gocode/pkg/mod/cache/vcs/49cdef3e2697979b0da
938baa0f74bd154458398de9ef7d91f6a7c1ab8936bdd: exit status 128:
        remote: Repository not found.
        fatal: repository 'https://github.com/NirmalVatsyayan/Backend/
' not found

问题在于它仍在尝试引用路径github.com/NirmalVatsyayan/Backend/MysqLDBLib/MysqLConnInit,该路径现在不存在,即github.com/NirmalVatsyayan/MysqLDBLib/MysqLConnInit。在第3行中,它指向正确的路径github.com/NirmalVatsyayan/MysqLDBLib/Model imports,但在第4行中,它再次指向较旧的路径github.com/NirmalVatsyayan/Backend/MysqLDBLib/MysqLConnInit。为什么go mod会指向一个不再存在的存储库,即使它基本上首先指向新的存储库也是如此。

github.com/NirmalVatsyayan/Backend/MysqLDBLib/MysqLConnInit内部没有引用github.com/NirmalVatsyayan/MysqLDBLib/Model,在代码中确实引用了正确的目录github.com/NirmalVatsyayan/MysqLDBLib/MysqLConnInit

解决方法

您可以在replace中使用go.mod选项

like:

replace (
    fake/path/of/package => ../real/address
)

然后运行go build your_main_file.gogo run your_main_file.go