go: go.mod file not found in current directory or any parent directory

昨天本想复习一下go,所以特地将golang从1.15升级到最新的1.17.3版本,哪知运行带有导入第三方包的文件就报红(内置模块没有问题)。

 

 go.mod file是什么东东?为此上网查阅了一番。

Go最初推出来的时候并没有一个库管理方式,而是采用GOPATH的方式。

go module介绍  (官方文档

  • go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用。
  • go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等。
  • 使用go module之后我们可不用将代码放置在src下了。

使用 go module 管理依赖后会在项目根目录下生成两个文件 go.mod 和 go.sum。go..mod 用来标记一个module和当前依赖以及依赖库的版本,go.sum 记录每个依赖库的版本和哈希值。

 解决

开启Go Module

Windows:

set GO111MODULE=on

Mac:

export GO111MODULE=on

然后命令行输入 go env 查看环境变量,GO111MODULE 选项为 on 代表修改成功。

初始化

 在你的项目文件夹下,使用GO MODULE进行初始化,下面是我刚刚报错的工程:

执行 go mod init day01 (day01为项目名),在项目根目录会出现一个 go.mod 文件。

注意,此时的 go.mod 文件只标识了项目名和go的版本,这是正常的,因为只是初始化了,所以我执行go run hello.go 跑不起来。根据提示,go get xxx(相关依赖)下载至本地即可。

 

参考:go module 基本使用 | linux - go: go.mod file not found in current directory or any parent directory; see 'go help modules' - Stack Overflow

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值