cmd/go: “package ... is not in GOROOT“问题解决办法
环境windows10go1.17问题描述想在go文件中导入自己写的包中的方法或者变量,结果爆红could not import xxxxgo run的运行结果也是package src/chapter1/other/pkg1 is not in GOROOT (XXXX路径)问题解决方法这里我们使用了go mod进行包路径的管理GO111MODULEgo env -w GO111MODULE=o
文章共528字 · 阅读需要大约2分钟
一键AI生成摘要,助你高效阅读
问答
·
环境
- windows10
- go1.17
问题描述
想在go文件中导入自己写的包中的方法或者变量,结果爆红could not import xxxx
go run的运行结果也是package src/chapter1/other/pkg1 is not in GOROOT (XXXX路径)
问题解决方法
这里我们使用了go mod进行包路径的管理
GO111MODULE
go env -w GO111MODULE=on #开启go mod管理,同理off就是关闭
开启之后,我们要import自己的包就会在go.mod路径下进行寻址
目录结构如下
-- 05-go
-- src
--chapter1
-- main.go
-- other
--utils.go
--go.mod
go.mod
内容如下:
#这里的go.mod是使用go mod init xx生成的,可以看我之前的文章
module 05-go
go 1.17
utils.go
文件内容如下
package other
var Hero string = "hello,World"
因为go.mod里面设置了寻址路径,main.go
内容如下
重要的事情,这里的import必须带上go.mod里面的路径,然后再加上导入包的路径
package main
import (
"05-go/src/chapter1/other"
"fmt"
)
func main() {
fmt.Println(other.Hero)
}
此时已经可以正常运行,主要是模块与路径之间的对应关系
疑问?
还有另一种包路径管理模式,就是关闭go mod
go env -w GO111MODULE=off
此时会在GOPATH路径下进行搜索,但是我GOPATH未生效,一直提示GOROOT下面找不到,这个如果有大佬知道怎么解决可以告知一下,环境变量已经配置了GOPATH了
更多推荐
已为社区贡献1条内容
所有评论(0)