Go引入包报错 package ... is not in GOROOT

Posted 君记否

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go引入包报错 package ... is not in GOROOT相关的知识,希望对你有一定的参考价值。

配置GOPATH

GOPATH是一个环境变量,是GO项目的存放路径
GOROOT为go安装路径

添加环境变量

vim ~/.bash_profile

 

vim编辑器按 i 进入编辑模式

 

按Esc退出编辑模式,:wq 报错退出

环境变量添加保存之后,执行以下命令让配置生效

source ~/.bash_profile

查看go环境变量配置

go env

配置后还是报相同的错,编译器没有去gopath下找包,查了一下原因是GO111MODULE没有关, gomod 和 gopath 两个包管理方案,并且相互不兼容,在 gopath 查找包,按照 goroot 和多 gopath 目录下 src/xxx 依次查找。在 gomod 下查找包,解析 go.mod 文件查找包,mod 包名就是包的前缀,里面的目录就后续路径了。在 gomod 模式下,查找包就不会去 gopath 查找,只是 gomod 包缓存在 gopath/pkg/mod 里面。

解决方法:把GO111MODULE置为off,打开终端输入即可

go env -w GO111MODULE=off

以上是关于Go引入包报错 package ... is not in GOROOT的主要内容,如果未能解决你的问题,请参考以下文章

“package ‘******’ is not available for this version of R“——Rstudio下载包报错

“package ‘******’ is not available for this version of R“——Rstudio下载包报错

eclispe集成Scalas环境后,导入外部Spark包报错:object apache is not a member of package org

Springbootspring-boot-starter-redis包报错 :unknown

goland import 包报红

Go运行报错找不到包:package xxx is not in GOROOT