go mod init 是初始化 Go 模块的命令,生成 go.mod 文件声明模块路径和 Go 版本;需在项目根目录执行,如 go mod init example.com/myapp,推荐使用 Go 1.19+,低于 1.16 时需设置 GO111MODULE=on。

使用 go mod init 初始化 Go 项目模块,是开启 Go 模块(Go Modules)开发的第一步。它会生成 go.mod 文件,声明模块路径和 Go 版本,并为后续依赖管理打下基础。
确保 Go 版本支持模块
Go 1.11 起引入模块支持,1.16+ 默认启用。建议使用 Go 1.19 或更新版本:
- 运行
go version查看当前版本 - 若低于 1.16,可通过环境变量
GO111MODULE=on强制启用模块模式
在项目根目录执行 go mod init
进入你的项目文件夹(例如 myapp),运行命令:
go mod init example.com/myapp
其中 example.com/myapp 是模块路径(module path),应尽量唯一、可解析(不一定要真实存在),用于标识该模块及导入其他包时的引用前缀。常见选择包括:
立即学习“go语言免费学习笔记(深入)”;
- GitHub/GitLab 地址:
github.com/username/project - 公司内网域名:
git.internal.company/project - 本地开发可用占位符:
myproject(不推荐用于协作或发布)
初始化后检查 go.mod 文件
成功执行后,当前目录会生成 go.mod 文件,内容类似:
module example.com/myapp go 1.22
注意:
-
go行表示构建该项目所需的最小 Go 版本,由当前go命令版本自动写入 - 若已有
import语句引用外部包,go mod init不会自动下载依赖;需运行go build或go run后才会生成go.sum并拉取依赖
常见问题与处理
遇到提示 go: cannot find main module 或 go: go.mod file not found,说明当前不在模块根目录或未初始化。可尝试:
- 确认是否在正确目录下执行命令
- 删除残留的
vendor/或旧Gopkg.lock(如曾用 dep) - 若项目已含
go.mod但路径错误,可删掉重跑go mod init 新路径










