Windows装Go只需正确配置GOROOT、GOPATH和PATH:GOROOT指向Go根目录,PATH包含%GOROOT%\bin和%GOPATH%\bin,均设为系统变量;下载官网最新版安装包(推荐.msi),解压路径须纯英文无空格;配置后重启终端验证go version与go env GOPATH。

Windows 上装 Go 环境,只要 GOROOT、GOPATH、PATH 三处配对,go version 能打出版本号,就基本能写代码了。其他配置(比如 GO111MODULE)是项目级需求,不是安装阶段必须的。
下载并解压 Go 安装包(别用系统自带的)
去官网 https://www.php.cn/link/c3367c02da318284045c5b13c76a79d2 下最新稳定版(如 go1.22.5.windows-amd64.msi 或 .zip),别用 Windows 自带的旧版 go(常见于某些预装系统或 PowerShell 自带的精简版),它不带 go.exe 或缺少 pkg 目录,运行 go env 会直接报错。
- 推荐下载
.msi安装包:双击自动完成注册表和基础路径设置,省去手动解压和变量配置 - 如果下的是
.zip,解压后路径不能含中文、空格或特殊符号(例如C:\Go安全,C:\Program Files\go或D:\我的go\会出问题) - 解压完不要急着配环境变量——先确认目录里有
bin\go.exe和pkg\tool\子目录,否则后续所有命令都会失败
配置 GOROOT 和 PATH(系统变量,不是用户变量)
GOROOT 必须指向 Go 的根目录(即你解压后看到 src、bin、pkg 的那一层),PATH 必须包含 %GOROOT%\bin。这两项必须设在「系统变量」里,否则新打开的 CMD/PowerShell 无法识别 go 命令。
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」→ 在「系统变量」区域点击「新建」
- 变量名填
GOROOT,变量值填完整路径,例如C:\Go(注意结尾不加反斜杠) - 找到已有变量
Path,编辑 → 新建 → 输入%GOROOT%\bin,点确定 - 重启终端(关掉所有 CMD/PowerShell 再重开),执行
go version;若提示“不是内部或外部命令”,说明PATH没生效或写错了
GOPATH 可以不配,但建议设一个干净的 workspace
GOPATH 在 Go 1.16+ 后已非必需(模块模式下 go.mod 才是项目根),但初学者仍建议显式配置,避免 go get 或 go install 把二进制丢到奇怪位置(比如当前目录或 %USERPROFILE%\go\bin)。
立即学习“go语言免费学习笔记(深入)”;
- 在「系统变量」里新建
GOPATH,值设为一个纯英文、无空格的路径,例如C:\gopath - 再往
Path里追加一行:%GOPATH%\bin(这样go install出的工具才能直接运行) - 不必像老教程那样拆成多个分号隔开的路径;单个
C:\gopath就够用,src、pkg、bin会自动创建 - 验证方式:
go env GOPATH应输出你设的路径;go install golang.org/x/tools/cmd/goimports@latest成功后,终端能直接运行goimports -h
GO111MODULE 和 GOPROXY 是写项目才要动的开关
刚装完 Go,不需要立刻执行 go env -w GO111MODULE=on。默认行为是:有 go.mod 文件时自动启用模块,没有则走 GOPATH 模式。强行全局开启反而会让老项目编译失败。
-
GO111MODULE推荐保持默认(auto),等你用go mod init初始化项目时再自然启用 -
GO111MODULE=off仅在维护极老的GOPATH项目时需要,日常开发不用碰 -
GOPROXY如果国内下载慢(go get卡住或报timeout),再设:go env -w GOPROXY=https://goproxy.cn,direct -
GOSUMDB=off不建议默认关闭——除非你明确知道校验失败原因(比如私有仓库证书问题),否则留着更安全
最常被忽略的一点:每次改完环境变量,一定要关掉所有已打开的终端窗口,再新开一个来验证。CMD/PowerShell 不会自动继承新变量,靠刷新或 source 是无效的。


















