Go Modules 中“package xxx is not in GOROOT”错误如何解决?

go modules 中“package xxx is not in goroot”错误如何解决?

go modules 中出现“package xxx is not in goroot”错误

在使用 go modules 时,可能会遇到如下错误:

package xxx is not in goroot

这个错误往往出现在尝试导入外部包时。原因在于,在启用 go modules (即 go111module="on" 时),go 不会再自动从 $goroot/src 目录中查找包。

解决办法

要解决此问题,需要以下步骤:

  1. 确保已启用 go modules。在终端中运行:

    go env -w GO111MODULE=on
  2. 确保您的项目包含 go.mod 文件。该文件指定了项目中使用的模块。
  3. 确保您已导入正确的模块版本。检查 go.mod 文件中的 require 语句。
  4. 确保 package 的名称与文件包名相匹配。例如,如果 setting.go 文件的包名为 setting,则应该导入 github.com/gin-gonic/example/goblog/pkg/conf/setting。
  5. 确保您的项目中没有包路径冲突。如果存在多个项目(子模块)共享相同的工作空间,则可能会发生此问题。

以上就是Go Modules 中“package xxx is not in GOROOT”错误如何解决?的详细内容,更多请关注www.sxiaw.com其它相关文章!