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

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

 go: go.mod file not found in current directory or any parent directory_第1张图片

 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: go.mod file not found in current directory or any parent directory_第2张图片

初始化

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

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

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

go: go.mod file not found in current directory or any parent directory_第3张图片

 

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

你可能感兴趣的:(golang,golang)