先重启终端再检查PATH:关闭所有旧终端,新开终端运行go version;若仍失败,确认%GOROOT%\bin是否在系统PATH中,且未手动篡改GOROOT。

go version 报“不是内部或外部命令”怎么办
说明:.msi 安装包确实会自动配置 PATH,但旧终端进程不会读取新环境变量,这是 Windows 上最常卡住新手的第一步。
实操建议:
立即学习“go语言免费学习笔记(深入)”;
- 关掉所有已打开的 CMD、PowerShell、VS Code 终端窗口(包括集成终端)
- 重新打开一个全新终端,再执行
go version - 如果仍报错,检查系统环境变量中是否真有
%GOROOT%\bin(默认是C:\Program Files\Go\bin) - 别在安装中途手动改
GOROOT——比如装到D:\Go后又去删注册表或改 PATH,容易和 VS Code Go 插件路径解析冲突
go env 显示 GOPATH 为空是不是没配好
说明:Go 1.16+ 默认启用 Modules,GO111MODULE=on 已成标配,GOPATH 不再参与依赖管理,只用于存放 go install 的二进制文件(如 gopls、dlv)。
实操建议:
立即学习“go语言免费学习笔记(深入)”;
- 不用硬设
GOPATH环境变量;若已设,反而可能干扰go install命令的可执行路径查找 -
go env GOPATH输出空值或%USERPROFILE%\go都属正常,不影响go mod init和go run - 模块缓存实际走的是
GOMODCACHE(Windows 下通常在%LOCALAPPDATA%\Go\pkg\mod),和GOPATH无关
go get 总是超时或拉不到 golang.org/x/xxx
说明:默认代理 proxy.golang.org 和校验服务器 sum.golang.org 在国内直连成功率极低,不是网络问题,是策略性不可达。
实操建议:
立即学习“go语言免费学习笔记(深入)”;
- 立即执行:
go env -w GOPROXY=https://goproxy.cn,direct和go env -w GOSUMDB=sum.golang.org -
direct是关键:它表示当代理找不到包时,自动回源官方地址,兼顾速度与兜底能力 - 验证是否生效:
go env GOPROXY应输出https://goproxy.cn,direct;若仍是空或https://proxy.golang.org,说明go env -w没写对或权限不足 - 不推荐用 PowerShell 的
$env:GOPROXY=...临时设置——关掉窗口就失效,必须用go env -w或管理员权限的setx
新建项目要不要进 GOPATH/src 目录
说明:老教程里强调的 GOPATH/src/example.com/hello 目录结构,在 Modules 时代已彻底过时。现在任意目录都能初始化模块。
实操建议:
立即学习“go语言免费学习笔记(深入)”;
- 直接在你习惯的位置建文件夹,比如
D:\projects\hello - 运行:
go mod init example.com/hello(模块名只是逻辑标识,不要求真实域名) - 写个
main.go,内容含package main和func main(),就能go run main.go - 依赖会自动下载到
GOMODCACHE,go.sum文件会自动生成并锁定校验和——这才是你现在该关注的两个文件
go get、go test、VS Code 插件提示都会无声失败。很多人卡在“为什么明明装好了却跑不起来”,其实就差关掉那个旧 CMD 窗口。


















