根本原因是系统PATH未包含Go的bin目录;Mac/Linux需在~/.zshrc或~/.bash_profile中添加export PATH=$PATH:/usr/local/go/bin并source,Windows需在环境变量Path中新增C:\Go\bin。

Go安装后go version报错:command not found
根本原因是系统PATH没包含Go的bin目录。Mac/Linux下装完默认放/usr/local/go/bin,Windows是C:\Go\bin,但shell或终端启动时未必自动加载。
- Mac/Linux:检查
~/.zshrc或~/.bash_profile里有没有export PATH=$PATH:/usr/local/go/bin,没有就加一行,然后source ~/.zshrc - Windows:进「系统属性 → 高级 → 环境变量」,在「系统变量」里找到
Path,新增C:\Go\bin(别漏掉\bin) - 验证:新开一个终端,运行
go version;如果还报错,说明终端没读新环境变量——别用GUI快捷方式启动的Terminal,改用命令行直接开
VS Code里Go插件提示“Go command not found”
不是插件没装好,而是插件自己也依赖系统PATH里的go命令。即使终端里go version能跑,VS Code可能仍找不到。
- Mac用户尤其注意:用Launchpad点开的VS Code,继承的是GUI环境,不读shell配置文件。解决方法是终端里执行
code --new-window启动VS Code - 确认插件已安装:搜索并启用
Go官方插件(作者是golang.go),不是vscode-go旧版 - 插件设置里检查
"go.gopath"和"go.goroot"是否为空——现在Go 1.16+默认不用设GOPATH,留空即可;GOROOT一般也不用配,插件会自动探测
go mod init失败:module path should not contain dot
这是初学者高频踩坑点。你输入go mod init my.project,Go直接报错,因为模块路径不能含点号(.),它会被当成域名解析。
- 正确写法是用反斜杠或短横线:
go mod init my-project或go mod init myproject - 更规范的做法是带域名前缀,比如你有GitHub账号
alice,就写go mod init github.com/alice/myproject——这既是合法路径,又方便后续go get - 如果已经误建了含点的module,删掉目录下的
go.mod重来即可,不需要清缓存
运行go run main.go卡住没输出
不是编译慢,大概率是程序本身阻塞了。最常见的是net/http服务没加log.Fatal或http.ListenAndServe返回错误后没处理,导致进程挂着但没日志。
立即学习“go语言免费学习笔记(深入)”;
- 加一句
fmt.Println("starting server...")在http.ListenAndServe前,确认是否走到那里 - 检查端口是否被占用:
lsof -i :8080(Mac/Linux)或netstat -ano | findstr :8080(Windows) - 如果用了
time.Sleep(10 * time.Second)模拟长时间运行,记得加fmt.Println确认执行流,否则你以为卡住,其实只是安静等结束
Go环境真正麻烦的从来不是安装步骤,而是PATH继承、GUI与终端环境隔离、模块路径语义这些隐性规则。配好了别急着写业务逻辑,先用go run跑个打印"hello"的main.go,再试一次go mod init和go build,确保每步都有明确反馈。


















