微信扫一扫 分享朋友圈

已有 265 人浏览分享

开启左侧

遇到cmd/go: “package ... is not in GOROOT“怎么解决

[复制链接]
265 0
想在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
image-20211119200834129
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,海欣资源网所发布的资源由网友上传和分享,不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
2,海欣资源网的资源来源于网友分享,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3,海欣资源网所发布的资源由网友上传和分享,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
4,如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉,联系方式邮箱 haixinst@qq.com
海欣资源-企业信息化分享平台。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

0

粉丝

43

主题
热度排行
回复排行
最新贴子

Archiver|手机版|海欣资源 ( 湘ICP备2021008090号-1 )|网站地图

GMT+8, 2023-2-1 17:01 , Gzip On, Redis On.

免责声明:本站所发布的资源和文章均来自网络,仅限用于学习交流和测试研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 如果您喜欢,请支持正版,购买正版,得到更好的正版服务,如有侵权,请联系我们删除并予以真诚的道歉。