先确认PATH是否生效;Windows需重启终端或手动添加C:\Go\bin到系统Path,macOS/Linux需在~/.zshrc中添加export PATH=$PATH:/usr/local/go/bin并source生效,再用which go或where go验证。

go version 命令没反应?先确认 PATH 是否生效
安装完 Go 后,go version 报“命令未找到”,基本是 PATH 没配对。Windows 的 .msi 安装包默认会加 C:\Program Files\Go\bin 到系统 PATH,但有时需手动重启终端或重新登录;macOS/Linux 解压 tar.gz 后必须手动把 $GOROOT/bin 加进 shell 配置文件(如 ~/.zshrc),且要执行 source ~/.zshrc 才生效。
验证方式不是只看 echo $PATH,而是直接运行:which go 或 where go(Windows PowerShell)——没输出就说明 PATH 有问题。
- Linux/macOS:检查
export GOROOT=/usr/local/go和export PATH=$PATH:$GOROOT/bin是否写错路径、是否漏掉export - Windows:右键“此电脑”→“属性”→“高级系统设置”→“环境变量”,确认
Path里有C:\Program Files\Go\bin(注意不是C:\Program Files\Go) - VS Code 终端可能不读取 shell 配置,关掉再重开,或在终端里先
source ~/.zshrc
go mod init 报错 “no Go files in current directory” 怎么办
这个错误不是模块初始化失败,而是 go mod init 要求当前目录下至少有一个 .go 文件(哪怕只是空的 main.go)。它不会帮你创建文件,只负责生成 go.mod。
正确做法是先建一个最小可运行文件:
package main
func main() {
}
然后再运行:go mod init example.com/hello
- 模块名可以任意起(比如
myproj),不必是真实域名,但建议用有意义的标识符 - 如果已有
go.mod,再跑go mod init会报错,删掉旧文件再试 - 不用非得在
$GOPATH/src下操作——Go Modules 模式下,项目可放在任意路径
go test 找不到_test.go 文件?检查命名和位置
go test 只扫描当前目录下以 _test.go 结尾的文件,且这些文件必须和被测代码在同一个包(即同目录、同 package 声明)。常见漏点:
立即学习“go语言免费学习笔记(深入)”;
- 文件名写成
test_main.go或main_test.golang—— 必须是*_test.go - 测试文件放在子目录(如
tests/)里 ——go test默认不递归,要用go test ./... - 测试函数没用
Test开头,或参数不是*testing.T——func TestAdd(t *testing.T)才会被识别 - 测试文件里写了
package main,但源文件是package mylib—— 包名必须一致,否则编译失败
国内运行 go get 或 go test 很慢?改 GOPROXY 是刚需
默认代理 https://proxy.golang.org 在国内基本不可用,不设代理的话,go mod download 或 go test 依赖远程包时会卡住或超时。
执行这条命令即可生效(推荐腾讯云镜像):go env -w GOPROXY=https://mirrors.cloud.tencent.com/go/,direct
-
direct表示对私有仓库(如公司内网 Git)直连,不走代理 - 改完后运行
go env GOPROXY确认值已更新 - 如果项目用到了私有模块,还需额外配置
GOINSECURE,比如:go env -w GOINSECURE="git.internal.company.com"
go test 默认只跑当前目录,而很多人把测试文件和源码分开放在不同层级,结果命令执行了却“没反应”——既不报错也不输出,其实是没发现任何测试文件。


















