go modules 中出现“package xxx is not in goroot”错误
在使用 go modules 时,可能会遇到如下错误:
package xxx is not in goroot
登录后复制
这个错误往往出现在尝试导入外部包时。原因在于,在启用 go modules (即 go111module=”on” 时),go 不会再自动从 $goroot/src 目录中查找包。
解决办法
要解决此问题,需要以下步骤:
-
确保已启用 go modules。在终端中运行:
go env -w GO111MODULE=on
登录后复制 - 确保您的项目包含 go.mod 文件。该文件指定了项目中使用的模块。
- 确保您已导入正确的模块版本。检查 go.mod 文件中的 require 语句。
- 确保 package 的名称与文件包名相匹配。例如,如果 setting.go 文件的包名为 setting,则应该导入 hub.com/gin-gonic/example/goblog/pkg/conf/setting。
- 确保您的项目中没有包路径冲突。如果存在多个项目(子模块)共享相同的工作空间,则可能会发生此问题。
以上就是Go Modules 中“package xxx is not in GOROOT”错误如何解决?的详细内容,更多请关注php中文网其它相关文章!