装好go命令、配对goproxy、删掉旧vendor/目录即可运行绝大多数go项目,无需修改goroot或手动维护gopath/src;需验证path生效(macos/linux用which go,windows用get-command go),并显式启用模块模式、设置国内代理及校验源。

装好 go 命令、配对 GOPROXY、删掉旧 vendor/ 目录,就足以跑起绝大多数 Go 项目——不需要改 GOROOT,也不必手动维护 GOPATH/src。
验证 go 命令是否真可用
很多人执行 go version 报 command not found,不是没装,而是终端没读到 PATH。
- macOS / Linux:运行
which go,有输出才说明 PATH 生效;没有就检查安装路径(如/usr/local/go/bin)是否加进~/.zshrc或~/.bash_profile - Windows:用 PowerShell 运行
Get-Command go;失败就去「系统属性 → 高级 → 环境变量」确认Go\bin目录进了用户或系统 PATH - 别信安装器勾选的“添加到 PATH”——它只在新终端生效;已打开的终端要重启,或手动
source ~/.zshrc
必须设置的三个环境变量
Go 1.16+ 默认启用模块模式,但国内网络下不设代理,go mod download 会卡死或超时。
初始化并管理阿里云SDK Go 客户端,涵盖 sync.Once 单例、goroutine 安全、endpoint 与 region 配置、VPC 端点及调试。
- 运行
go env -w GO111MODULE=on(显式启用模块,避免老脚本干扰) - 运行
go env -w GOPROXY=https://goproxy.cn,direct(推荐国内镜像,比https://proxy.golang.org可靠) - 运行
go env -w GOSUMDB=sum.golang.google.cn(跳过校验失败导致的下载中断) - 执行完后用
go env | grep -E "(GO111MODULE|GOPROXY|GOSUMDB)"确认值已写入
go mod init 失败的常见原因
不是命令写错,而是当前目录或项目残留状态冲突。
- 当前目录在
$GOPATH/src下?go mod init会尝试按旧路径推导 module 名,大概率出错;切到任意非GOPATH路径再试 - 项目里还有
vendor/目录?删掉它,否则模块初始化可能静默降级为 vendor 模式 - 存在
GO111MODULE=off的 shell 环境变量?用env | grep GO111MODULE检查并清除 - 想初始化模块但没指定名称?直接
go mod init example.com/myapp,别空着参数
VS Code 中 gopls 启动失败怎么办
gopls 不是插件装上就跑,它依赖项目结构和 go 命令本身可用。
- 确保当前文件夹有
go.mod(哪怕只是空文件),且文件后缀是.go - 确保终端里
go version和go env GOPROXY都能正常返回 - 首次打开 Go 文件时,VS Code 会提示安装工具链;点 “Install All”,别跳过
gopls和goimports - 如果反复失败,删掉
~/.vscode/extensions/golang.go-*/out/并重装插件(缓存损坏很常见)
最常被忽略的是:PATH 没生效就急着初始化模块,或者 vendor/ 和 GOPATH/src 路径混在一起。这两个问题占了新手配置失败的八成以上。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










