先简单回答一下第一个问题,这个和你的目录包的设置有关(**你可以先给出一下go.mod,我看看** );第二个,可以,需要进行replace 首先让我们来看一下 Go 的包管理: Go 语言使用包(Package)作为代码的组织单位,每个 Go 程序都是由包组成的,并且程序从 main 包开始运行。Go 应用程序通常由一组多个包组成。 开始时,Go 倾向于使用全局的 GOPATH 作为工作区间的目录,并且会在这个目录下存放所有的 Go 代码,包括你自己的和第三方的。这就意味着所有的代码和依赖都会在同一个地方。 Go 引入go mod。Go Modules 允许我们的项目可以在任何位置,不一定需要在 GOPATH 中。 接下来,我们来看一下 Go 的路径引入: 如果你在 Go 文件 import "github.com/gin-gonic/gin",那么这其实就是一个包的导入路径。Go 会根据这个路径去 GOPATH 或者 GOROOT 中查找对应的包。 在使用 Go Modules 的时候,你可以以模块路径(module path)作为一个基础路径(基本上就是你的 module 名称,比如 "github.com/myname/myproject")。你的其它包可以以这个基础路径为基础,建立在你的项目的子目录中。 因此,包管理和路径引入之间有着紧密的关系。包管理决定了你的代码和依赖的物理组织方式,而路径引入决定了你的代码如何在逻辑上连接和使用这些包。在 Go Modules 的辅助下,这两者可以更加灵活和便捷地工作。