装完就能写代码的关键在于path、模块模式和代理三处配置:需手动验证go version是否生效,执行go env -w go111module=on启用模块,再设go env -w goproxy=https://goproxy.cn,direct加速依赖下载。

装完就能写代码,不是“理论上可行”,而是终端敲 go run main.go 真能跑出结果——关键在 PATH、模块模式和代理三处,卡住基本就在这儿。
go command 找不到?别信安装器自动勾选的 PATH
Windows 上装了 .msi 却提示 command not found,Mac/Linux 下 which go 返回空,本质是 shell 没读到新 PATH。安装器所谓“自动添加”只改注册表或 plist,不刷新当前终端。
- Windows:用 PowerShell 运行
Get-Command go;失败就去「系统属性 → 高级 → 环境变量」里手动把C:\Program Files\Go\bin(或你自定义路径)加进用户或系统PATH - macOS/Linux:检查
go实际在哪(比如/usr/local/go/bin),然后往~/.zshrc或~/.bash_profile末尾加一行:export PATH=$PATH:/usr/local/go/bin;再执行source ~/.zshrc - 验证:新开一个终端,直接输
go version,有输出才算真生效
go mod init 失败?先清掉 vendor 和 GOPATH/src 干扰
go mod init 在旧项目里静默失败,大概率因为残留的 vendor/ 目录或当前路径落在 $GOPATH/src 下——它会强行按旧 GOPATH 规则推导 module 名,比如变成 github.com/yourname/src/myproject,明显错。
- 删掉项目根目录下的
vendor/(除非你明确要 vendor 依赖) - 运行
go env -w GO111MODULE=on强制启用模块模式(Go 1.16+ 默认开,但 CI 或老脚本可能关着) - 切到任意非
$GOPATH/src的路径下再初始化:mkdir ~/myproj && cd ~/myproj && go mod init example.com/myproj
VS Code 里 gopls 启动失败?三个硬性前提缺一不可
gopls 不是插件装上就工作,它依赖底层环境合规。常见症状:打开 .go 文件后无提示、跳转失效、Go: Install/Update Tools 卡住。
-
go命令必须全局可用(go version能执行) - 项目根目录要有
go.mod(没就先go mod init) - 文件后缀必须是
.go,且不能放在vendor/或GOPATH/src里 - 国内用户务必配代理:
go env -w GOPROXY=https://goproxy.cn,direct,否则gopls启动时会卡在拉golang.org/x/tools
依赖下载慢或超时?GOPROXY 必须设,GO111MODULE 必须开
不设代理,go get 或 go mod download 会直连 proxy.golang.org 和 sum.golang.google.cn,国内基本超时。更隐蔽的问题是:即使代理设了,GO111MODULE=off 也会让模块机制失效,退化成 GOPATH 模式,导致依赖行为异常。
- 执行这两条命令一次到位:
go env -w GOPROXY=https://goproxy.cn,direct和go env -w GO111MODULE=on - 验证:
go env | grep -E "(GOPROXY|GO111MODULE)"应输出GOPROXY="https://goproxy.cn,direct"和GO111MODULE="on" - 如果公司内网有私有代理,把
https://goproxy.cn换成你们的地址即可
真正麻烦的不是步骤多,而是 PATH 没生效时你以为装好了、go mod init 失败时你以为命令错了、gopls 不工作时你怀疑插件问题——其实全是环境链上某一处断了,得顺着 go version → go env → go mod init → gopls 这条线挨个验。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











