先确认PATH是否包含go可执行文件,Windows需确保%GOROOT%\bin已加入PATH且GOROOT指向正确安装目录(如C:\Go),macOS/Linux需将/usr/local/go/bin加入shell配置并source生效,再用where go或which go验证路径。

go version 命令没反应?先确认 PATH 是否包含 go 可执行文件
安装后运行 go version 报 “不是内部或外部命令”,说明系统根本找不到 go。这不是 Go 没装好,而是 PATH 没生效。
- Windows 用户:安装时务必勾选 “Add Go to PATH”(.msi 安装器默认勾选,但偶尔会失效);若手动配置,PATH 中必须含
%GOROOT%\bin,且%GOROOT%要指向实际安装目录(如C:\Go,不是C:\Program Files\Go—— 后者是旧版默认,新版 MSI 默认用C:\Go) - macOS/Linux 用户:解压安装后,
/usr/local/go/bin必须加进 shell 配置文件(~/.zshrc或~/.bashrc),然后执行source ~/.zshrc;别漏掉export PATH=$PATH:/usr/local/go/bin这一行 - 验证方式:直接输入
where go(Windows)或which go(macOS/Linux),有输出路径才算成功;echo $PATH看是否真包含该路径
go env -w GOPROXY 失败?检查 Go 版本和模块模式是否启用
go env -w GOPROXY=... 报错或不生效,常见原因是 Go 1.11 之后才默认支持模块(module),而低版本或关闭模块模式时该设置无效。
- 先运行
go env GO111MODULE:输出on才代表模块已启用;若为auto或off,需手动开启:go env -w GO111MODULE=on - 国内用户推荐代理:
https://goproxy.cn或https://mirrors.aliyun.com/goproxy/;注意格式必须带,direct,例如:go env -w GOPROXY=https://goproxy.cn,direct - 如果
go env -w提示“cannot set environment variable”,说明当前 shell 权限受限(比如在某些 IDE 内置终端中),换到系统原生终端再执行
VS Code 中 Go 插件报 “Tool not installed”?别全选一键安装
VS Code 的 Go 插件(Go Team at Google)点击 “Install/Update Tools” 后卡住、失败或部分工具缺失,往往是因为网络或权限问题导致某些二进制下载中断。
- 不要勾选全部工具 —— 尤其
dlv(调试器)、gopls(语言服务器)和gomodifytags这三个最常用;其余如benchstat、fillstruct等可暂缓 - 优先确保
gopls成功安装:它是语法高亮、跳转、补全的核心,失败会导致整个插件功能瘫痪;若失败,可手动下载对应平台的gopls二进制,放进$GOPATH/bin并确保在 PATH 中 - Windows 上杀毒软件(尤其 McAfee、360)常拦截 Go 工具自动下载,临时禁用再试;macOS 上可能因 SIP 限制无法写入
/usr/local/bin,建议改用$HOME/go/bin
GOPATH 还需要手动设吗?Go 1.16+ 默认行为已变
很多老教程强调必须设置 GOPATH,但现在它只影响 go get(非 module 模式)和 go install 的默认安装位置,日常开发几乎不用管。
立即学习“go语言免费学习笔记(深入)”;
- Go 1.16 起,
go install默认把可执行文件放到$GOBIN;若未设GOBIN,则 fallback 到$GOPATH/bin;但如果你用go run或go build,GOPATH完全无关 - 新建项目直接
go mod init example.com/foo即可,代码可以放在任意目录,不再强制要求放在$GOPATH/src下 - 唯一要设
GOPATH的场景:你仍依赖旧版go get安装全局命令(如go get github.com/tomnomnom/httprobe),且不想指定-d参数;否则,留默认值即可
真正容易被忽略的是 GOPROXY 和 GO111MODULE 的组合效果:哪怕设置了代理,模块模式关着,go get 仍会直连官方仓库并超时。这两项必须同时生效,缺一不可。



















