go 1.16+默认启用modules,gopath非必需,仅用于go install工具存放;正确做法是确保path包含$goroot/bin、$gopath/bin,go111module=on,并用go mod init初始化项目。

直接装最新版 Go,别纠结旧教程里那些手动配 GOPATH、改 GOROOT 的步骤——Go 1.16 之后默认启用模块(modules),GOPATH 已不是必需项,强行设反而容易引发路径冲突或工具链识别异常。
go version 命令报错或找不到命令
说明 go 没进系统 PATH,不是没装好,而是环境变量没生效。
- Windows:安装时勾选「Add Go to PATH」(新版 .msi 默认勾选);若漏了,手动把
C:\Go\bin(或你自定义的安装路径下的\bin)加到系统环境变量Path里 - macOS/Linux:检查
~/.zshrc或~/.bash_profile是否有这行:export PATH=$PATH:/usr/local/go/bin;改完记得source ~/.zshrc - 终端重启后仍无效?用
which go(macOS/Linux)或where go(Windows CMD)确认二进制位置,再核对 PATH 是否包含该路径
go env 显示 GOPATH 路径奇怪或指向 C:\Users\xxx\go
这是默认行为,不用改。Go 模块模式下,GOPATH 仅用于存放 go install 安装的可执行工具(如 gopls、dlv),不是项目根目录。
- 项目随便放哪都行,只要顶层有
go.mod文件即可(用go mod init example.com/myapp初始化) - 想改缓存位置?用
go env -w GOMODCACHE=/path/to/cache,避免 C 盘爆满 - 别在 IDE 里硬填
GOPATH字段——VS Code 的 Go 扩展、GoLand 都能自动识别模块,填了反而干扰
go get 无法拉取 GitHub 依赖(timeout / refused)
国内直连 GitHub 不稳定,但不用装代理软件,Go 原生支持代理配置。
- 运行:
go env -w GOPROXY=https://proxy.golang.com.cn,direct(官方推荐镜像,免认证) - 验证:
go env GOPROXY看是否生效 - 如果公司内网禁外网,可加
NO_PROXY=*.corp(替换为你的内网域名) - 注意:不要设成
https://goproxy.io这类已停服的旧地址,会卡死
真正容易被忽略的是:装完 Go 后,别急着写代码,先跑一次 go mod init myapp 再 go run main.go,确认模块初始化和依赖解析走的是新流程——很多「环境搭建成功」的假象,其实是旧 GOPATH 模式残留导致的偶然通过。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











