VS Code 中 Go 命令报错是因启动未继承 shell 环境变量,需终端启动(macOS/Linux)或重启进程(Windows);dlv 需手动安装并配置 go.dlvPath;GOPROXY 必须设为 https://goproxy.cn,direct;验证标准是打断点、看变量、go run 成功。

go 命令在终端里能运行,但在 VS Code 里报 command not found: go,说明环境变量没被 VS Code 正确继承——这不是“环境没搭好”,而是启动方式导致的 PATH 隔离问题。
VS Code 启动时没读 shell 配置,PATH 就不生效
macOS/Linux 下 VS Code 默认用 launchd 启动,不加载 ~/.zshrc 或 ~/.bash_profile;Windows 下则可能绕过系统环境变量更新。结果就是:你手动 source ~/.zshrc 后终端里 go version 没问题,但 VS Code 集成终端里查不到 go。
- macOS:从终端启动 VS Code,执行
code --no-sandbox(或直接code),确保它继承当前 shell 环境 - Linux:同上,用终端启动,避免从桌面图标双击
- Windows:修改系统环境变量后,必须彻底关闭所有 VS Code 进程(任务管理器里杀掉
Code.exe及子进程),再重新打开 - 验证方式:在 VS Code 集成终端里运行
which go(macOS/Linux)或where go(Windows),有输出才算真正生效
Go 插件装了但调试器 dlv 找不到
VS Code 的 Go 扩展不会自动安装 dlv,首次打开 .go 文件时弹窗提示“Install All”才是关键动作——但很多人点了跳过,或弹窗被拦截,导致后续断点全灰、调试按钮不可用。
- 手动补救:运行
go install github.com/go-delve/delve/cmd/dlv@latest - 确认安装位置:
$GOPATH/bin/dlv($GOPATH默认是~/go),不是/usr/local/go/bin - VS Code 设置里检查
go.dlvPath是否指向正确路径,否则会 fallback 到找不到的默认值 - 如果
dlv version报错,大概率是$GOPATH/bin没加进PATH,得回头补上
国内网络下 go get 卡住或校验失败
不设 GOPROXY 就等于裸连 proxy.golang.org,超时、403、checksum mismatch 是常态,不是你网络差,是镜像策略没配对。
- 立即生效的配置:
export GOPROXY=https://goproxy.cn,direct(macOS/Linux)或set GOPROXY=https://goproxy.cn,direct(Windows CMD) -
direct很重要:它让公司内网 Git 地址(如git.internal.corp)跳过代理,避免认证失败 - 遇到
verifying xxx: checksum mismatch,先试go clean -modcache,别急着加-insecure - 用
go list -m github.com/go-sql-driver/mysql测试是否秒回,比go get更轻量、更准
实在不想折腾?用在线沙箱跑 Go 代码
不是所有场景都必须本地环境。写 demo、学语法、临时验证逻辑,play.golang.org 和 go.dev/play 足够用——它们自带最新稳定版 go,支持模块、依赖、甚至简单 HTTP server。
立即学习“go语言免费学习笔记(深入)”;
- 限制明显:不能读写文件、不能调本地数据库、不能用 cgo、不能 debug(没断点、没变量监视)
- 适合:函数逻辑验证、并发模型推演、标准库 API 快速试用
- 注意:粘贴敏感代码前删掉 token、密码、私钥——沙箱是公开服务,无隐私保障
- 替代选择:
replit.com支持完整 Go 环境 + 终端 + 文件系统,但免费版有 CPU/内存限制,且启动稍慢
go version 能跑,而是 VS Code 里能打断点、能看变量、能 go run 成功——这三件事缺一不可。


















