Go环境搭建需验证go命令可用性、显式启用GO111MODULE=on、配置GOPROXY国内代理,并确认GOROOT正确;不同终端环境变量可能不一致,须逐一验证。

go 环境搭建不是“配完就完事”的流程,而是要根据实际开发场景决定是否需要手动干预环境变量、是否启用模块、代理怎么设——很多报错(比如 go: github.com/xxx not found 或 command not found: go)都源于这几个点没对齐。
验证 go 命令是否可用,而不是只看安装包有没有点下一步
安装程序(尤其是 Windows 的 .msi)会自动把 C:\Program Files\Go\bin 加进系统 PATH,但这个改动在当前 CMD/PowerShell 里不会自动生效。必须新开一个终端再试。
- 运行
go version,有输出类似go version go1.22.0 windows/amd64才算真正可用 - 如果提示
'go' is not recognized,说明PATH没生效,别急着重装,先检查:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」→「系统变量」里的Path是否包含C:\Program Files\Go\bin - Linux/macOS 手动解压安装的,必须确认
/usr/local/go/bin已写入~/.bashrc或~/.zshrc,且执行过source ~/.zshrc
GO111MODULE=on 必须显式启用,不能依赖默认值
Go 1.16+ 虽然默认开启 Modules,但某些旧 shell 或 CI 环境仍可能 fallback 到 auto 模式,导致 go get 失败或误用 GOPATH。
- 运行
go env -w GO111MODULE=on(永久写入),比临时set GO111MODULE=on更可靠 - 验证:执行
go env GO111MODULE,输出必须是on,不是auto或空 - 如果项目目录下已有
go.mod却提示no required module provides package,大概率是这个值没生效
国内用户不设 GOPROXY,go mod download 会卡住或失败
官方 proxy https://proxy.golang.org 在国内不稳定,go get 或 go mod tidy 时经常超时、403 或返回空响应。
- 推荐设为
https://goproxy.cn,direct(注意逗号后是direct,不是https://goproxy.io等已停服地址) - 设置命令:
go env -w GOPROXY=https://goproxy.cn,direct - 如果公司内网有私有 proxy,可替换为内部地址,但务必保留
,direct作为 fallback,否则私有源不可用时整个命令会直接失败 - 设完后跑一次
go mod download,观察是否快速拉取依赖,而不是卡在Fetching github.com/xxx
GOPATH 现在基本不用配,但 GOROOT 出问题会导致工具链异常
Go Modules 启用后,GOPATH 对日常开发已无影响,但 GOROOT 错了,go build 可能编译出错、go tool 命令失效,甚至 VS Code 的 Go 插件无法启动语言服务器。
立即学习“go语言免费学习笔记(深入)”;
-
GOROOT应该指向 Go 安装根目录(Windows 默认C:\Program Files\Go,macOS 默认/usr/local/go),不是bin子目录 - 除非你手动解压到非标路径(如
D:\go),否则不要手动设置GOROOT;安装程序会自动推导,设错反而覆盖正确值 - 检查方式:
go env GOROOT输出路径是否存在,且里面包含src、pkg、bin三个文件夹
go env 输出的结果未必代表你当前正在写的代码所处的环境。每次换终端,都要重新验证 go version 和 go env GO111MODULE GOPROXY。


















