栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

cmd/go: “package ... is not in GOROOT“问题解决办法

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cmd/go: “package ... is not in GOROOT“问题解决办法

环境
  • 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了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号