go mod init 是创建 Go 模块的第一步,生成 go.mod 文件并声明模块路径;路径应唯一且推荐与代码托管地址一致(如 github.com/username/repo-name),本地开发可用 example.com/myproject;执行 go mod init module-path 后生成含 module 和 go 版本的最小化 go.mod;初始化前需确保目录干净,避免已有 go.mod;路径一旦设定不宜更改,否则需同步更新所有导入语句;可通过查看 go.mod、运行 go list -m 或导入自身包验证是否生效。

在 Go 语言中,使用 go mod init 初始化模块是创建现代 Go 项目的第一步,它会生成 go.mod 文件,用于声明模块路径和管理依赖。
明确模块路径(module path)
模块路径通常是项目的唯一标识,建议与代码托管地址一致(如 GitHub、GitLab),便于后续发布和他人引用。即使项目暂未公开,也推荐按该格式设定,避免后期重构。
- 本地开发可设为
example.com/myproject,无需真实存在域名 - 若托管在 GitHub,推荐用
github.com/username/repo-name - 路径中不包含
.git后缀,也不用加v1等版本号(版本由go.mod中的require行控制)
执行 go mod init 命令
在项目根目录下运行命令即可初始化模块:
go mod init example.com/myproject
执行后会生成一个最小化的 go.mod 文件,内容类似:
立即学习“go语言免费学习笔记(深入)”;
module example.com/myproject go 1.22
其中 Go 版本自动取自当前 go 命令版本,也可后续手动修改。
常见注意事项
初始化前确保当前目录是空的或仅含源码文件(不含 vendor、go.mod 或旧的 Gopkg.lock)。若目录中已有 go.mod,go mod init 会报错,需先清理或换目录。
- 如果忘记指定模块路径,直接运行
go mod init(无参数),Go 会尝试从当前路径推导,但结果往往不可靠,不推荐 - 初始化后,首次运行
go build或go run会自动更新go.mod,添加标准库以外的依赖 - 模块路径一旦写入
go.mod,后续改名需同步更新所有导入语句,代价较大,建议一步设对
验证模块是否生效
初始化完成后,可通过以下方式确认:
- 查看是否存在
go.mod文件,并检查module行是否符合预期 - 运行
go list -m,输出应为你的模块路径 - 在代码中导入自己包时(如
import "example.com/myproject/utils"),编译不报错即说明模块路径可被正确解析










