必须检查path是否生效,因go命令找不到主因是环境变量未配置;macos/linux需在~/.zshrc或~/.bash_profile中添加export path=$path:/usr/local/go/bin并source,windows需在系统环境变量path中添加go安装路径的bin目录并重启终端。

go version 报 command not found 怎么办
根本不是没装 Go,而是终端根本找不到 go 命令——PATH 没生效是最常见原因。
- macOS / Linux:运行
which go,没输出就说明 PATH 里没加/usr/local/go/bin(或你实际安装路径下的bin);检查~/.zshrc或~/.bash_profile是否有export PATH=$PATH:/usr/local/go/bin,改完必须source ~/.zshrc - Windows:用 PowerShell 运行
Get-Command go,失败就打开「系统属性 → 高级 → 环境变量」,确认C:\Program Files\Go\bin(或你自定义路径)已加入「系统变量」或「用户变量」的Path;改完要重启终端,或者新开一个 PowerShell 窗口 - 别信安装器勾选的“添加到 PATH”——它可能只写进某个 shell 的配置,也可能压根没写;手动验证最可靠
go mod init 失败或生成错误 module 名
不是命令错了,是当前目录或环境状态干扰了模块初始化逻辑。
- 先运行
go env -w GO111MODULE=on,强制启用模块模式(Go 1.16+ 默认开启,但某些旧脚本或 CI 环境仍可能关着) - 删掉项目根目录下的
vendor/目录(除非你明确要用 vendor,否则它会干扰模块解析) - 别在
$GOPATH/src下执行go mod init——Go 会试图按旧 GOPATH 规则推导 module 名,比如变成github.com/yourname/project而不是你想要的example.com/project;建议直接在任意非$GOPATH路径新建文件夹再 init - module 名建议用域名前缀(如
go mod init mycompany.com/api),避免后续包导入冲突
VS Code 里 gopls 启动失败或没提示
gopls 不是插件装上就跑,它依赖底层环境和项目结构合规。
Go 配置库,使用 spf13/viper — 分层优先级(flag > env >file > KV > default),提供 BindPFlag/BindPFlags、SetEnvPrefix + SetEnvKeyReplace 等功能。
- 确保终端里能正常运行
go version和go env;如果不行,VS Code 的 Go 插件也起不来 - 项目根目录必须有
go.mod文件(go mod init生成的),且当前打开的是该目录(不是父目录或子目录) - 文件后缀必须是
.go;VS Code 识别不到 Go 文件类型时,gopls不会加载 - 首次打开 Go 文件时,VS Code 会弹窗提示“Install All”工具链;点它,别跳过——
gopls、goimports、golangci-lint都得装全
国内环境下依赖下载超慢或失败
不是网络问题,是 Go 默认代理 proxy.golang.org 在国内不可达,必须显式配置镜像源。
- 执行
go env -w GOPROXY=https://goproxy.cn,direct(阿里云镜像用https://mirrors.aliyun.com/goproxy/也可) - 顺手加上校验开关:
go env -w GOSUMDB=sum.golang.google.cn,否则go get可能因 checksum 失败中断 - 如果公司内网有私有代理,可设为
go env -w GOPROXY=http://your-proxy:8080,direct,末尾的direct表示对私有域名直连 - 验证是否生效:
go env | grep GOPROXY应输出你刚设置的地址
真正卡住的点往往不在“怎么装”,而在 PATH 是否生效、go.mod 是否在正确路径下、gopls 是否拿到完整工具链——这些细节不盯住,视频里敲十遍命令也没用。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










