Go开发环境就绪需完成三步:①项目根目录执行go mod init初始化模块;②配置GOPROXY=https://goproxy.cn,direct;③安装Delve调试器(go install github.com/go-delve/delve/cmd/dlv@latest)。

Go 环境不是装完 go 就能直接写服务的,缺了关键环节(比如模块初始化、调试器配置、代理设置)会导致 go run 报错、go get 卡住、VS Code 断点不生效——这些都不是代码问题,而是环境链断在了中间。
go version 能跑 ≠ Go 开发环境就绪
很多人验证完 go version 就以为万事大吉,结果新建项目 go run main.go 直接报 no required module provides package。这是因为 Go 1.16+ 默认启用 modules,但新目录没初始化模块,工具链找不到依赖上下文。
- 必须在项目根目录执行
go mod init example.com/myapp,生成go.mod -
go.mod里第一行模块路径不能是本地路径(如./或myapp),否则后续引入包会失败 - 如果项目路径含中文或空格,
go mod可能静默出错,建议全英文路径
GOPROXY 不配,go get 基本瘫痪
国内直连 proxy.golang.org 极大概率超时,go get github.com/gin-gonic/gin 卡住几十秒后报 timeout 或 connection refused 是常态。
- 推荐设为
https://goproxy.cn,direct(阿里云镜像,稳定且支持私有模块回退) - 设置命令:
go env -w GOPROXY=https://goproxy.cn,direct - 别用
export GOPROXY=...临时设置,Shell 重启后失效;go env -w写入用户级配置,永久生效 - 若公司内网需走私有代理,
direct必须保留在列表末尾,否则私有域名无法解析
Delve 调试器不装,VS Code 断点形同虚设
VS Code 安装了 Go 插件,但点击调试按钮弹出 dlv not found,是因为 Delve 没单独安装——Go 自带的 go tool 不包含调试器。
立即学习“go语言免费学习笔记(深入)”;
- 安装命令:
go install github.com/go-delve/delve/cmd/dlv@latest - 安装后检查:
dlv version应输出版本号,且路径在$GOPATH/bin下 - VS Code 的
launch.json中"dlvLoadConfig"配置项要显式指定,否则大结构体变量展开为空 - 调试 HTTP 服务时,
dlv默认监听 localhost,远程调试需加--headless --continue --accept-multiclient --api-version=2 --addr=:2345
GOROOT 和 GOPATH 别手动乱动
多数人不需要也不应该手动改 GOROOT 或 GOPATH。Go 安装程序已设好默认值,改错会导致 go build 找不到标准库或模块缓存失效。
-
GOROOT是 Go 安装路径,Windows 默认C:\Program Files\Go\,macOS 默认/usr/local/go,Linux 默认/usr/local/go——除非你解压到别处,否则别碰 -
GOPATH在 modules 模式下仅用于存放go install编译的可执行文件(即$GOPATH/bin),源码不再放$GOPATH/src - 执行
go env GOROOT GOPATH看当前值,如果和默认路径差太多,优先重装 Go 而非硬调环境变量
真正卡住人的从来不是语法,而是 go mod 初始化漏掉、GOPROXY 没设、dlv 没装这三件事。它们不出错时不显眼,一出错就整片流程停摆,而且错误提示分散在不同阶段,容易误判成代码或 IDE 问题。


















